| window.tests.set('selfCyclicWeakMap', (function() { |
| var garbage = []; |
| var garbageIndex = 0; |
| return { |
| description: "var wm = new WeakMap(); wm[k1] = k2; wm[k2] = k3; ...", |
| |
| defaultGarbagePerFrame: "1K", |
| defaultGarbageTotal: "1K", |
| |
| load: (N) => { garbage = new Array(N); }, |
| |
| unload: () => { garbage = []; garbageIndex = 0; }, |
| |
| makeGarbage: (M) => { |
| var wm = new WeakMap(); |
| var initialKey = {}; |
| var key = initialKey; |
| var value = {}; |
| for (var i = 0; i < M; i++) { |
| wm.set(key, value); |
| key = value; |
| value = {}; |
| } |
| garbage[garbageIndex++] = [ initialKey, wm ]; |
| if (garbageIndex == garbage.length) |
| garbageIndex = 0; |
| } |
| }; |
| })()); |