test262/implementation-contributed/javascriptcore/stress/ftl-try-catch-varargs-call-throws.js
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

33 lines
580 B
JavaScript

function foo(o, a) {
let resetFlag = false;
if (flag) {
resetFlag = true;
flag = false;
}
let x = o(10);
let y = o(20);
if (resetFlag)
flag = true;
try {
o.apply(null, a);
} catch(e) {
if (x !== 10)
throw new Error("Not 10")
return x + y;
}
}
noInline(foo);
var flag = false;
function f(arg1, arg2, arg3) {
if (flag)
throw new Error("blah")
return arg1;
}
noInline(f);
for (let i = 0; i < 100000; i++) {
foo(f, [10, 20, 30]);
}
flag = true;
foo(f, [10, 20, 30]);