[JSC] AI should not propagate AbstractValue relying on constant folding phase
[WebKit-https.git] / JSTests / stress / call-varargs-spread.js
1 function assert(b, m = "") {
2     if (!b)
3         throw new Error("Bad assert: " + m);
4 }
5 noInline(assert);
6
7 function bar(...args) {
8     return args;
9 }
10 noInline(bar);
11
12 function foo(a, ...args) {
13     let x = bar(...args, 42, ...args); 
14     return x;
15 }
16 noInline(foo);
17
18 for (let i = 0; i < 10000; i++) {
19     let r = foo(i, i+1, i+2, i+3);
20     assert(r.length === 7);
21     assert(r[0] === i+1, JSON.stringify(r));
22     assert(r[1] === i+2, JSON.stringify(r));
23     assert(r[2] === i+3, JSON.stringify(r));
24     assert(r[3] === 42, JSON.stringify(r));
25     assert(r[4] === i+1, JSON.stringify(r));
26     assert(r[5] === i+2, JSON.stringify(r));
27     assert(r[6] === i+3, JSON.stringify(r));
28 }