You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
379 B
JavaScript
17 lines
379 B
JavaScript
var weakMemoize = function weakMemoize(func) {
|
|
// $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps
|
|
var cache = new WeakMap();
|
|
return function (arg) {
|
|
if (cache.has(arg)) {
|
|
// $FlowFixMe
|
|
return cache.get(arg);
|
|
}
|
|
|
|
var ret = func(arg);
|
|
cache.set(arg, ret);
|
|
return ret;
|
|
};
|
|
};
|
|
|
|
export { weakMemoize as default };
|