Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
1 var key = {};
2 var wm = WeakMap();
4 assertEq(wm.has(key), false);
5 // Clearing an already empty WeakMap
6 wm.clear();
7 assertEq(wm.has(key), false);
9 // Clearing a WeakMap with a live key
10 wm.set(key, 42);
11 assertEq(wm.has(key), true);
12 wm.clear();
13 assertEq(wm.has(key), false);
15 // Clearing a WeakMap with keys turned to garbage
16 wm.set(key, {});
17 for (var i = 0; i < 10; i++)
18 wm.set({}, {});
19 assertEq(wm.has(key), true);
20 wm.clear();
21 assertEq(wm.has(key), false);
23 // Clearing a WeakMap with keys turned to garbage and after doing a GC
24 wm.set(key, {});
25 for (var i = 0; i < 10; i++)
26 wm.set({}, {});
27 assertEq(wm.has(key), true);
28 gc();
29 assertEq(wm.has(key), true);
30 wm.clear();
31 assertEq(wm.has(key), false);
33 // More testing when the key is no longer live
34 wm.set(key, {});
35 key = null;
36 wm.clear();
37 gc();
38 var key2 = {};
39 wm.set(key2, {});
40 key2 = null;
41 gc();
42 wm.clear();