022059ff55428fa0fed969b6f3c437c94f9b29ac
[WebKit-https.git] / LayoutTests / js / script-tests / dfg-osr-entry-hoisted-clobbered-structure-check.js
1 //@ noNoLLIntRunLayoutTest if $architecture == "arm" and $hostOS == "darwin"
2
3 description(
4 "Tests that performing an OSR entry into a loop with a hoisted structure check, where the loop may clobber the world, works."
5 );
6
7 function foo(o, n) {
8     var result = 0;
9     for (var i = 0; i < n; ++i) {
10         result += o.f;
11         result += o.g(i);
12         if (i > 1)
13             result += o.i;
14         if (i > 2)
15             result += o.j;
16         o = o.h(i);
17         result += o.g(i);
18     }
19     return result;
20 }
21
22 function bar(i) {
23     var str = "var x" + i + " = 42; x" + i;
24     return eval(str);
25 }
26
27 var counter = 0;
28 function baz(i) {
29     var str = "var x" + i + " = 42; x" + i;
30     eval(str);
31     if (i == 1100)
32         return {g:bar, i:3, j:4, h:baz, f:2 + counter++};
33     return this;
34 }
35
36 var object = {f:1, g:bar, h:baz, i:2, j:3};
37 shouldBe("foo(object, 10000)", "926684");
38
39