[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / arrowfunction-lexical-this-activation-sink-osrexit.js
1 //@ skip if $architecture == "x86"
2
3 var n = 10000000;
4
5 var newContext = {
6   id : 'new-context'
7 };
8
9 function bar() { }
10
11 function foo(b) {
12     var result = 0;
13     var set = (x) => {
14       // Check if arrow function store context
15       if (this != newContext || this.id != newContext.id)
16           throw 'Wrong context of arrow function';
17       result = x;
18     }
19     if (b) {
20         OSRExit();
21         if (b) {
22             bar(set);
23         }
24         return result;
25     }
26     return result;
27 }
28
29 noInline(bar);
30 noInline(foo);
31
32 for (var i = 0; i < n; i++) {
33     var result = foo.call(newContext, !(i % 100));
34     if (result != 0)
35         throw "Error: bad result: " + result;
36 }