@@ -39,10 +39,6 @@ type CacheNode<T> =
3939 | UnterminatedCacheNode < T >
4040 | ErroredCacheNode < T > ;
4141
42- function createCacheRoot < T > (): WeakMap< Function | Object , CacheNode < T > > {
43- return new WeakMap ( ) ;
44- }
45-
4642function createCacheNode < T > (): CacheNode< T > {
4743 return {
4844 s : UNTERMINATED , // status, represents whether the cached computation returned a value or threw an error
@@ -61,19 +57,11 @@ export function cache<A: Iterable<mixed>, T>(fn: (...A) => T): (...A) => T {
6157 return fn . apply ( null , arguments ) ;
6258 }
6359 const activeCache = dispatcher . getActiveCache ( ) ;
64- let fnMap : WeakMap < any , CacheNode < T >> | void = ( activeCache . get (
65- createCacheRoot ,
66- ) : any ) ;
67- if ( fnMap === undefined ) {
68- fnMap = createCacheRoot ( ) ;
69- // TODO: Warn if undefined?
70- activeCache . set ( createCacheRoot , fnMap ) ;
71- }
72- const fnNode = fnMap . get ( fn ) ;
60+ const fnNode : CacheNode < T > | void = (activeCache.get(fn): any);
7361 let cacheNode: CacheNode< T > ;
7462 if (fnNode === undefined) {
7563 cacheNode = createCacheNode ( ) ;
76- fnMap . set ( fn , cacheNode ) ;
64+ activeCache . set ( fn , cacheNode ) ;
7765 } else {
7866 cacheNode = fnNode ;
7967 }
0 commit comments