Source code

Revision control

Copy as Markdown

Other Tools

// |jit-test| --ion-inlining=off; --fast-warmup
function calleeWithFormals(a, b, ...arr) {
assertEq(b, 2);
if (arr.length > 0) {
assertEq(arr[0], 3);
}
if (arr.length > 1) {
assertEq(arr[1], Math);
}
if (arr.length > 2) {
assertEq(arr[2], "foo");
}
return arr;
}
function calleeWithoutFormals(...arr) {
if (arr.length > 0) {
assertEq(arr[0], 3);
}
if (arr.length > 1) {
assertEq(arr[1], Math);
}
if (arr.length > 2) {
assertEq(arr[2], "foo");
}
return arr;
}
function f() {
for (var i = 0; i < 100; i++) {
assertEq(calleeWithFormals(1, 2).length, 0);
assertEq(calleeWithFormals(1, 2, 3).length, 1);
assertEq(calleeWithFormals(1, 2, 3, Math).length, 2);
assertEq(calleeWithFormals(1, 2, 3, Math, "foo").length, 3);
assertEq(calleeWithoutFormals().length, 0);
assertEq(calleeWithoutFormals(3).length, 1);
assertEq(calleeWithoutFormals(3, Math).length, 2);
assertEq(calleeWithoutFormals(3, Math, "foo").length, 3);
}
}
f();