[JSC] Do not use asArrayModes() with Structures because it discards TypedArray inform...
[WebKit-https.git] / JSTests / stress / cfa-expected-values-must-set-clobbered-to-false.js
1 //@ runDefault("--useFTLJIT=0", "--useConcurrentJIT=false")
2
3 let num = 150;
4
5 function foo(comp, o, b) {
6     let sum = o.f;
7     if (b)
8         OSRExit();
9     for (let i = 0; i < comp; ++i) {
10         sum += o.f;
11     }
12     return sum;
13 }
14 noInline(foo);
15
16 let o = {f:25};
17 let o2 = {f:25, g:44};
18 o2.f = 45;
19 o2.f = 45;
20 o2.f = 45;
21 o2.f = 45;
22 let comp = {
23     valueOf() { return num; }
24 }
25
26 foo(comp, o2, true);
27 foo(comp, o2, true);
28 for (let i = 0; i < 500; ++i) {
29     foo(comp, o2, false);
30 }
31
32 let o3 = {g:24, f:73};
33 num = 10000000;
34 let result = foo(comp, o3, false);
35
36 if (result !== (num + 1)*73) {
37     throw new Error("Bad: " + result);
38 }