]> git.saurik.com Git - apple/javascriptcore.git/blob - tests/stress/jit-cache-poly-replace-then-cache-get-and-fold-then-invalidate.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / jit-cache-poly-replace-then-cache-get-and-fold-then-invalidate.js
1 var o = {f:42};
2
3 function foo(p, o, v) {
4 if (p)
5 o.f = v;
6 }
7
8 function bar() {
9 return o.f;
10 }
11
12 noInline(foo);
13 noInline(bar);
14
15 for (var i = 0; i < 10; ++i)
16 foo(false);
17
18 for (var i = 0; i < 10; ++i)
19 foo(true, {}, 42);
20
21 for (var i = 0; i < 10; ++i)
22 foo(true, o, 42);
23
24 for (var i = 0; i < 100000; ++i) {
25 var result = bar();
26 if (result != 42)
27 throw "Error: bad result: " + result;
28 }
29
30 foo(true, o, 53);
31 var result = bar();
32 if (result != 53)
33 throw "Error: bad result at end: " + result;