[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / activation-sink-osrexit-default-value.js
1 //@ skip if $architecture == "x86"
2
3 var n = 10000000;
4
5 function bar(set) { 
6     var result = set(0);
7     if (result !== void 0)
8         throw "Error: bad value: " + result;
9 }
10
11 function foo(b) {
12     var result = 0;
13     var imUndefined;
14     var baz;
15     var set = function (x) { 
16         result = x; 
17         if (baz !== 50)
18             throw "Error: bad value: " + baz;
19         return imUndefined;
20     }
21     baz = 50;
22     if (b) {
23         OSRExit();
24         if (b) {
25             bar(set);
26         }
27         return 0;
28     }
29     return result;
30 }
31
32 noInline(bar);
33 noInline(foo);
34
35 for (var i = 0; i < n; i++) {
36     var result = foo(!(i % 100));
37     if (result != 0)
38         throw "Error: bad result: " + result;
39 }