[JSC] Do not use asArrayModes() with Structures because it discards TypedArray inform...
[WebKit-https.git] / JSTests / stress / basic-weakmap.js
1 function shouldBe(actual, expected)
2 {
3     if (actual !== expected)
4         throw new Error('bad value: ' + actual);
5 }
6
7 function test()
8 {
9     var map = new WeakMap();
10     var key1 = {};
11     var key2 = {};
12     var key3 = [];
13
14     var res1 = map.get(key1);
15     map.set(key1, 42);
16     var res2 = map.get(key1);
17
18     shouldBe(res1, undefined);
19     shouldBe(res2, 42);
20
21     var res3 = map.get(key2);
22     map.set(key3, 43);
23     var res4 = map.get(key2);
24
25     shouldBe(res3, undefined);
26     shouldBe(res4, undefined);
27
28     shouldBe(map.get(key3), 43);
29
30     map.delete(key3);
31     shouldBe(map.get(key3), undefined);
32
33     shouldBe(map.get(key1), 42);
34     map.delete(key1);
35     shouldBe(map.get(key1), undefined);
36     shouldBe(map.has(key1), false);
37
38     map.set(key1, 44);
39     shouldBe(map.get(key1), 44);
40     shouldBe(map.has(key1), true);
41 }
42 noInline(test);
43
44 for (var i = 0; i < 1e4; ++i)
45     test();