Sha256: 693e7840a420c0f51d07190b9846b45e50a951e0119190ee5068167936801430
Contents?: true
Size: 649 Bytes
Versions: 26
Compression:
Stored size: 649 Bytes
Contents
/** * Memoizes the provided three-argument function. */ export function memoize3(fn) { let cache0; return function memoized(a1, a2, a3) { if (cache0 === undefined) { cache0 = new WeakMap(); } let cache1 = cache0.get(a1); if (cache1 === undefined) { cache1 = new WeakMap(); cache0.set(a1, cache1); } let cache2 = cache1.get(a2); if (cache2 === undefined) { cache2 = new WeakMap(); cache1.set(a2, cache2); } let fnResult = cache2.get(a3); if (fnResult === undefined) { fnResult = fn(a1, a2, a3); cache2.set(a3, fnResult); } return fnResult; }; }
Version data entries
26 entries across 26 versions & 1 rubygems