Arity fixup during inlining should do a 2 phase commit so it properly recovers the...
[WebKit-https.git] / JSTests / stress / exit-during-inlined-arity-fixup-recover-proper-frame.js
1 let i;
2 function verify(a, b, c, d, e, f) {
3     function assert(b, m) {
4         if (!b)
5             throw new Error(m);
6     }
7     assert(a === i);
8     assert(b === i+1);
9     assert(c === i+2);
10     assert(d === null);
11     assert(e === undefined);
12     assert(f === undefined);
13 }
14 noInline(verify);
15
16 function func(a, b, c, d, e, f)
17 {
18     verify(a, b, c, d, e, f);
19     return !!(a%2) ? a + b + c + d : a + b + c + d;
20 }
21
22 const bar = createBuiltin(`(function (f, a, b, c, d) {
23     let y = @idWithProfile(null, "SpecInt32Only");
24     return f(a, b, c, y);
25 })`);
26
27 noInline(bar);
28
29 for (i = 0; i < 1000; ++i) {
30     bar(func, i, i+1, i+2, i+3);
31 }