mirror of
https://github.com/BreizhHardware/memoizee.git
synced 2026-01-18 16:37:21 +01:00
@@ -32,9 +32,8 @@ module.exports = function (memoize) {
|
||||
if (options.resolvers) resolve = resolveResolve(options.resolvers);
|
||||
if (options.normalizer) normalizer = resolveNormalize(options.normalizer);
|
||||
|
||||
if ((length === 1) && !normalizer && !(options.async && extensions.async) &&
|
||||
!(options.dispose && extensions.dispose) && !(options.maxAge && extensions.maxAge) &&
|
||||
!(options.max && extensions.max) && !(options.refCounter && extensions.refCounter)) {
|
||||
if ((length === 1) && !normalizer && !options.async && !options.dispose && !options.maxAge &&
|
||||
!options.max && !options.refCounter) {
|
||||
return defineProperties(function (obj) {
|
||||
var result, args = arguments;
|
||||
if (resolve) args = resolve(args);
|
||||
@@ -85,7 +84,7 @@ module.exports = function (memoize) {
|
||||
memoizer.delete.apply(this, slice.call(args, 1));
|
||||
}, length))
|
||||
});
|
||||
if (!options.refCounter || !extensions.refCounter) return memoized;
|
||||
if (!options.refCounter) return memoized;
|
||||
defineProperties(memoized, {
|
||||
deleteRef: d(defineLength(function (obj) {
|
||||
var memoizer, args = arguments;
|
||||
|
||||
12
test/weak.js
12
test/weak.js
@@ -1,6 +1,6 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function (t, a) {
|
||||
module.exports = function (t, a, d) {
|
||||
var value = [], obj = {}, memoized, count = 0, x, y, z;
|
||||
memoized = t(function (arg, x, y) { a(arg, obj); return x + y; },
|
||||
{ refCounter: true, dispose: function (val) { value.push(val); } });
|
||||
@@ -30,4 +30,14 @@ module.exports = function (t, a) {
|
||||
a(memoized(x), 1);
|
||||
a(memoized(z), 3);
|
||||
a(count, 3);
|
||||
|
||||
count = 0;
|
||||
memoized = t(function (arg) { return ++count; }, { maxAge: 1 });
|
||||
|
||||
memoized(obj);
|
||||
setTimeout(function () {
|
||||
memoized(obj);
|
||||
a(count, 2);
|
||||
d();
|
||||
}, 100);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user