[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / basic-weakset.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 set = new WeakSet();
10     var key1 = {};
11     var key2 = {};
12     var key3 = [];
13
14     var res1 = set.has(key1);
15     set.add(key1);
16     var res2 = set.has(key1);
17
18     shouldBe(res1, false);
19     shouldBe(res2, true);
20
21     var res3 = set.has(key2);
22     set.add(key3);
23     var res4 = set.has(key2);
24
25     shouldBe(res3, false);
26     shouldBe(res4, false);
27
28     shouldBe(set.has(key3), true);
29
30     set.delete(key3);
31     shouldBe(set.has(key3), false);
32
33     shouldBe(set.has(key1), true);
34     set.delete(key1);
35     shouldBe(set.has(key1), false);
36
37     set.add(key1);
38     shouldBe(set.has(key1), true);
39 }
40 noInline(test);
41
42 for (var i = 0; i < 1e4; ++i)
43     test();