diff --git a/lib/weak.js b/lib/weak.js index a9fd76a..115a4fe 100644 --- a/lib/weak.js +++ b/lib/weak.js @@ -36,10 +36,11 @@ module.exports = function (memoize) { !(options.dispose && extensions.dispose) && !(options.maxAge && extensions.maxAge) && !(options.max && extensions.max) && !(options.refCounter && extensions.refCounter)) { return defineProperties(function (obj) { - var result; - if (resolve) obj = resolve(arguments)[0]; + var result, args = arguments; + if (resolve) args = resolve(args); + obj = args[0]; if (map.has(obj)) return map.get(obj); - result = fn.call(this, obj); + result = fn.apply(this, args); if (map.has(obj)) throw customError("Circular invocation", 'CIRCULAR_INVOCATION'); map.set(obj, result); return result;