test262-automation e9a5a7f918 [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time) (#1620)
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
2018-07-03 15:59:58 -04:00

41 lines
1.2 KiB
JavaScript

var createBuiltin = $vm.createBuiltin;
count = createBuiltin("(function () { return @argumentCount(); })");
countNoInline = createBuiltin("(function () { return @argumentCount(); })");
noInline(countNoInline);
function inlineCount() { return count(); }
noInline(inlineCount);
function inlineCount1() { return count(1); }
noInline(inlineCount1);
function inlineCount2() { return count(1,2); }
noInline(inlineCount2);
function inlineCountVarArgs(list) { return count(...list); }
noInline(inlineCountVarArgs);
function assert(condition, message) {
if (!condition)
throw new Error(message);
}
for (i = 0; i < 1000000; i++) {
assert(count(1,1,2) === 3, i);
assert(count() === 0, i);
assert(count(1) === 1, i);
assert(count(...[1,2,3,4,5]) === 5, i);
assert(count(...[]) === 0, i);
assert(inlineCount() === 0, i);
assert(inlineCount1() === 1, i);
assert(inlineCount2() === 2, i);
assert(inlineCountVarArgs([1,2,3,4]) === 4, i);
assert(inlineCountVarArgs([]) === 0, i);
// Insert extra junk so that inlineCountVarArgs.arguments.length !== count.arguments.length
assert(inlineCountVarArgs([1], 2, 4) === 1, i);
assert(countNoInline(4) === 1, i)
assert(countNoInline() === 0, i);
}