1 | export function memoize1(fn) {
|
2 | const memoize1cache = new WeakMap();
|
3 | return function memoized(a1) {
|
4 | const cachedValue = memoize1cache.get(a1);
|
5 | if (cachedValue === undefined) {
|
6 | const newValue = fn(a1);
|
7 | memoize1cache.set(a1, newValue);
|
8 | return newValue;
|
9 | }
|
10 | return cachedValue;
|
11 | };
|
12 | }
|
13 | export function memoize2(fn) {
|
14 | const memoize2cache = new WeakMap();
|
15 | return function memoized(a1, a2) {
|
16 | let cache2 = memoize2cache.get(a1);
|
17 | if (!cache2) {
|
18 | cache2 = new WeakMap();
|
19 | memoize2cache.set(a1, cache2);
|
20 | const newValue = fn(a1, a2);
|
21 | cache2.set(a2, newValue);
|
22 | return newValue;
|
23 | }
|
24 | const cachedValue = cache2.get(a2);
|
25 | if (cachedValue === undefined) {
|
26 | const newValue = fn(a1, a2);
|
27 | cache2.set(a2, newValue);
|
28 | return newValue;
|
29 | }
|
30 | return cachedValue;
|
31 | };
|
32 | }
|
33 | export function memoize3(fn) {
|
34 | const memoize3Cache = new WeakMap();
|
35 | return function memoized(a1, a2, a3) {
|
36 | let cache2 = memoize3Cache.get(a1);
|
37 | if (!cache2) {
|
38 | cache2 = new WeakMap();
|
39 | memoize3Cache.set(a1, cache2);
|
40 | const cache3 = new WeakMap();
|
41 | cache2.set(a2, cache3);
|
42 | const newValue = fn(a1, a2, a3);
|
43 | cache3.set(a3, newValue);
|
44 | return newValue;
|
45 | }
|
46 | let cache3 = cache2.get(a2);
|
47 | if (!cache3) {
|
48 | cache3 = new WeakMap();
|
49 | cache2.set(a2, cache3);
|
50 | const newValue = fn(a1, a2, a3);
|
51 | cache3.set(a3, newValue);
|
52 | return newValue;
|
53 | }
|
54 | const cachedValue = cache3.get(a3);
|
55 | if (cachedValue === undefined) {
|
56 | const newValue = fn(a1, a2, a3);
|
57 | cache3.set(a3, newValue);
|
58 | return newValue;
|
59 | }
|
60 | return cachedValue;
|
61 | };
|
62 | }
|
63 | export function memoize4(fn) {
|
64 | const memoize4Cache = new WeakMap();
|
65 | return function memoized(a1, a2, a3, a4) {
|
66 | let cache2 = memoize4Cache.get(a1);
|
67 | if (!cache2) {
|
68 | cache2 = new WeakMap();
|
69 | memoize4Cache.set(a1, cache2);
|
70 | const cache3 = new WeakMap();
|
71 | cache2.set(a2, cache3);
|
72 | const cache4 = new WeakMap();
|
73 | cache3.set(a3, cache4);
|
74 | const newValue = fn(a1, a2, a3, a4);
|
75 | cache4.set(a4, newValue);
|
76 | return newValue;
|
77 | }
|
78 | let cache3 = cache2.get(a2);
|
79 | if (!cache3) {
|
80 | cache3 = new WeakMap();
|
81 | cache2.set(a2, cache3);
|
82 | const cache4 = new WeakMap();
|
83 | cache3.set(a3, cache4);
|
84 | const newValue = fn(a1, a2, a3, a4);
|
85 | cache4.set(a4, newValue);
|
86 | return newValue;
|
87 | }
|
88 | const cache4 = cache3.get(a3);
|
89 | if (!cache4) {
|
90 | const cache4 = new WeakMap();
|
91 | cache3.set(a3, cache4);
|
92 | const newValue = fn(a1, a2, a3, a4);
|
93 | cache4.set(a4, newValue);
|
94 | return newValue;
|
95 | }
|
96 | const cachedValue = cache4.get(a4);
|
97 | if (cachedValue === undefined) {
|
98 | const newValue = fn(a1, a2, a3, a4);
|
99 | cache4.set(a4, newValue);
|
100 | return newValue;
|
101 | }
|
102 | return cachedValue;
|
103 | };
|
104 | }
|
105 | export function memoize5(fn) {
|
106 | const memoize5Cache = new WeakMap();
|
107 | return function memoized(a1, a2, a3, a4, a5) {
|
108 | let cache2 = memoize5Cache.get(a1);
|
109 | if (!cache2) {
|
110 | cache2 = new WeakMap();
|
111 | memoize5Cache.set(a1, cache2);
|
112 | const cache3 = new WeakMap();
|
113 | cache2.set(a2, cache3);
|
114 | const cache4 = new WeakMap();
|
115 | cache3.set(a3, cache4);
|
116 | const cache5 = new WeakMap();
|
117 | cache4.set(a4, cache5);
|
118 | const newValue = fn(a1, a2, a3, a4, a5);
|
119 | cache5.set(a5, newValue);
|
120 | return newValue;
|
121 | }
|
122 | let cache3 = cache2.get(a2);
|
123 | if (!cache3) {
|
124 | cache3 = new WeakMap();
|
125 | cache2.set(a2, cache3);
|
126 | const cache4 = new WeakMap();
|
127 | cache3.set(a3, cache4);
|
128 | const cache5 = new WeakMap();
|
129 | cache4.set(a4, cache5);
|
130 | const newValue = fn(a1, a2, a3, a4, a5);
|
131 | cache5.set(a5, newValue);
|
132 | return newValue;
|
133 | }
|
134 | let cache4 = cache3.get(a3);
|
135 | if (!cache4) {
|
136 | cache4 = new WeakMap();
|
137 | cache3.set(a3, cache4);
|
138 | const cache5 = new WeakMap();
|
139 | cache4.set(a4, cache5);
|
140 | const newValue = fn(a1, a2, a3, a4, a5);
|
141 | cache5.set(a5, newValue);
|
142 | return newValue;
|
143 | }
|
144 | let cache5 = cache4.get(a4);
|
145 | if (!cache5) {
|
146 | cache5 = new WeakMap();
|
147 | cache4.set(a4, cache5);
|
148 | const newValue = fn(a1, a2, a3, a4, a5);
|
149 | cache5.set(a5, newValue);
|
150 | return newValue;
|
151 | }
|
152 | const cachedValue = cache5.get(a5);
|
153 | if (cachedValue === undefined) {
|
154 | const newValue = fn(a1, a2, a3, a4, a5);
|
155 | cache5.set(a5, newValue);
|
156 | return newValue;
|
157 | }
|
158 | return cachedValue;
|
159 | };
|
160 | }
|
161 | export function memoize2of4(fn) {
|
162 | const memoize2of4cache = new WeakMap();
|
163 | return function memoized(a1, a2, a3, a4) {
|
164 | let cache2 = memoize2of4cache.get(a1);
|
165 | if (!cache2) {
|
166 | cache2 = new WeakMap();
|
167 | memoize2of4cache.set(a1, cache2);
|
168 | const newValue = fn(a1, a2, a3, a4);
|
169 | cache2.set(a2, newValue);
|
170 | return newValue;
|
171 | }
|
172 | const cachedValue = cache2.get(a2);
|
173 | if (cachedValue === undefined) {
|
174 | const newValue = fn(a1, a2, a3, a4);
|
175 | cache2.set(a2, newValue);
|
176 | return newValue;
|
177 | }
|
178 | return cachedValue;
|
179 | };
|
180 | }
|
181 | export function memoize2of5(fn) {
|
182 | const memoize2of4cache = new WeakMap();
|
183 | return function memoized(a1, a2, a3, a4, a5) {
|
184 | let cache2 = memoize2of4cache.get(a1);
|
185 | if (!cache2) {
|
186 | cache2 = new WeakMap();
|
187 | memoize2of4cache.set(a1, cache2);
|
188 | const newValue = fn(a1, a2, a3, a4, a5);
|
189 | cache2.set(a2, newValue);
|
190 | return newValue;
|
191 | }
|
192 | const cachedValue = cache2.get(a2);
|
193 | if (cachedValue === undefined) {
|
194 | const newValue = fn(a1, a2, a3, a4, a5);
|
195 | cache2.set(a2, newValue);
|
196 | return newValue;
|
197 | }
|
198 | return cachedValue;
|
199 | };
|
200 | }
|