Spaces:
Runtime error
Runtime error
; | |
var forEach = require("es5-ext/object/for-each") | |
, normalizeOpts = require("es5-ext/object/normalize-options") | |
, callable = require("es5-ext/object/valid-callable") | |
, lazy = require("d/lazy") | |
, resolveLength = require("./resolve-length") | |
, extensions = require("./registered-extensions"); | |
module.exports = function (memoize) { | |
return function (props) { | |
forEach(props, function (desc) { | |
var fn = callable(desc.value), length; | |
desc.value = function (options) { | |
if (options.getNormalizer) { | |
options = normalizeOpts(options); | |
if (length === undefined) { | |
length = resolveLength( | |
options.length, | |
fn.length, | |
options.async && extensions.async | |
); | |
} | |
options.normalizer = options.getNormalizer(length); | |
delete options.getNormalizer; | |
} | |
return memoize(fn.bind(this), options); | |
}; | |
}); | |
return lazy(props); | |
}; | |
}; | |