mirror of
https://github.com/BreizhHardware/memoizee.git
synced 2026-01-18 16:37:21 +01:00
- Move out main modules from `lib` folder - Introduce `normalizer` based configurations, and convert primitive and regular handlers into thos normalizers (can be found in lib/normalizers folder). Custom normalizers can be provided at run time via `normaizer` option - Provide `plain` module which does not load any extensions or normalizers. Any extensions that have to be used should be required upfront and normalizers should be provided directly - Remove `method` option, instead `methods` and `methods-plan` modules are provided which generate descriptors for lazy created memoized methods - `profile` is no longer extension. To be used it should be required directly - Improve logic for `async` handling - Take out `max` extensionLRU logic into external `lru-queue` package - Remove `context` option - Remove possibility to access original arguments when resolvers are used - Assure expected length of memoized functions
35 lines
749 B
JavaScript
35 lines
749 B
JavaScript
'use strict';
|
|
|
|
var d = require('d');
|
|
|
|
require('../ext/dispose');
|
|
require('../ext/ref-counter');
|
|
|
|
module.exports = function (t, a) {
|
|
var value = [], obj = {};
|
|
Object.defineProperties(obj, t({
|
|
someFn: d(function (x, y) { a(this, obj); return x + y; },
|
|
{ refCounter: true,
|
|
dispose: function (val) { value.push(val); } })
|
|
}));
|
|
|
|
obj = Object.create(obj);
|
|
obj.someFn(3, 7);
|
|
obj.someFn(5, 8);
|
|
obj.someFn(12, 4);
|
|
a.deep(value, [], "Pre");
|
|
obj.someFn(5, 8);
|
|
obj.someFn.deleteRef(5, 8);
|
|
a.deep(value, [], "Pre");
|
|
obj.someFn.deleteRef(5, 8);
|
|
a.deep(value, [13], "#1");
|
|
value = [];
|
|
obj.someFn.deleteRef(12, 4);
|
|
a.deep(value, [16], "#2");
|
|
|
|
value = [];
|
|
obj.someFn(77, 11);
|
|
obj.someFn.clear();
|
|
a.deep(value, [10, 88], "Clear all");
|
|
};
|