[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / ai-create-this-to-new-object.js
1 function assert(b, m = "Bad!") {
2     if (!b) {
3         throw new Error(m);
4     }
5 }
6
7 function test(f, iters = 1000) {
8     for (let i = 0; i < iters; i++)
9         f(i);
10 }
11
12 function func(x) {
13     return x;
14 }
15 noInline(func);
16
17 function check(index, arr, B)
18 {
19     for (let i = 0; i < 1000; i++)
20         assert(arr[i] instanceof B);
21 }
22 noInline(check);
23
24 test(function body(index) {
25     class A {
26         constructor(x, f = func)
27         {
28             this._value = x;
29             this._func = f;
30         }
31     }
32
33     class B extends A {
34     }
35
36     let arr = [];
37     for (let i = 0; i < 1000; i++)
38         arr.push(new B(20));
39
40     check(index, arr, B);
41 }, 8);