@@ -178,8 +178,8 @@ export function memoize5<F extends (a1: any, a2: any, a3: any, a4: any, a5: any)
178178 } as F ;
179179}
180180
181- const memoize2of4cache : WeakMap < Record < string , any > , WeakMap < Record < string , any > , any > > = new WeakMap ( ) ;
182181export function memoize2of4 < F extends ( a1 : any , a2 : any , a3 : any , a4 : any ) => any > ( fn : F ) : F {
182+ const memoize2of4cache : WeakMap < Record < string , any > , WeakMap < Record < string , any > , any > > = new WeakMap ( ) ;
183183 return function memoized ( a1 : any , a2 : any , a3 : any , a4 : any ) : any {
184184 let cache2 = memoize2of4cache . get ( a1 ) ;
185185 if ( ! cache2 ) {
@@ -200,3 +200,26 @@ export function memoize2of4<F extends (a1: any, a2: any, a3: any, a4: any) => an
200200 return cachedValue ;
201201 } as F ;
202202}
203+
204+ export function memoize2of5 < F extends ( a1 : any , a2 : any , a3 : any , a4 : any , a5 : any ) => any > ( fn : F ) : F {
205+ const memoize2of4cache : WeakMap < Record < string , any > , WeakMap < Record < string , any > , any > > = new WeakMap ( ) ;
206+ return function memoized ( a1 : any , a2 : any , a3 : any , a4 : any , a5 : any ) : any {
207+ let cache2 = memoize2of4cache . get ( a1 ) ;
208+ if ( ! cache2 ) {
209+ cache2 = new WeakMap ( ) ;
210+ memoize2of4cache . set ( a1 , cache2 ) ;
211+ const newValue = fn ( a1 , a2 , a3 , a4 , a5 ) ;
212+ cache2 . set ( a2 , newValue ) ;
213+ return newValue ;
214+ }
215+
216+ const cachedValue = cache2 . get ( a2 ) ;
217+ if ( cachedValue === undefined ) {
218+ const newValue = fn ( a1 , a2 , a3 , a4 , a5 ) ;
219+ cache2 . set ( a2 , newValue ) ;
220+ return newValue ;
221+ }
222+
223+ return cachedValue ;
224+ } as F ;
225+ }
0 commit comments