test262/implementation-contributed/javascriptcore/stress/llint-stack-overflow-location.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

36 lines
810 B
JavaScript

//@ runNoJIT
function stackTraceDescription(stackFrame) {
let indexOfAt = stackFrame.indexOf('@')
let indexOfLastSlash = stackFrame.lastIndexOf('/');
if (indexOfLastSlash == -1)
indexOfLastSlash = indexOfAt
let functionName = stackFrame.substring(0, indexOfAt);
let fileName = stackFrame.substring(indexOfLastSlash + 1);
return functionName + " at " + fileName;
}
function foo(j) {
for (let i = 0; i < 20; i++) {
i--;
i++;
}
foo(j + 1);
}
let error = null;
try {
foo(10);
} catch(e) {
error = e;
}
if (!error)
throw new Error("No exception!");
let frame = error.stack.split("\n")[0];
let description = stackTraceDescription(frame);
if (description.indexOf(".js:18") < 0)
throw new Error("Bad location: '" + description + "'");