[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / big-int-type-of-proven-type-non-constant-including-symbol.js
1 //@ runBigIntEnabled
2
3 function assert(a) {
4     if (!a)
5         throw new Error("Bad assertion");
6 }
7
8 function typeOf(n) {
9     var value = "string";
10     var dispatcher = n % 3;
11     if (dispatcher === 0)
12         value = 1n;
13     else if (dispatcher === 1)
14         value = "string";
15     else
16         value = Symbol("symbol");
17     return typeof value;
18 }
19 noInline(typeOf);
20
21 for (let i = 0; i < 1e6; i++) {
22     switch (i % 3) {
23     case 0:
24         assert(typeOf(i) === "bigint");
25         break;
26     case 1:
27         assert(typeOf(i) === "string");
28         break;
29     case 2:
30         assert(typeOf(i) === "symbol");
31         break;
32     }
33 }