mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 14:30:27 +02:00
* [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)
39 lines
927 B
JavaScript
39 lines
927 B
JavaScript
function repeat(count, thunk) {
|
|
let result = "";
|
|
for (let i = 0; i < count; i++)
|
|
result += thunk(i);
|
|
return result;
|
|
}
|
|
|
|
function createSimple(outerDepth, innerDepth, returnDepth) {
|
|
return Function(
|
|
`
|
|
return (function(arg) {
|
|
${repeat(outerDepth, (i) => `for (let a${i} in arg) ` + "{\n" )}
|
|
try {
|
|
${repeat(innerDepth, (i) => `for (let b${i} in arg) ` + "{\n" )}
|
|
return {};
|
|
${repeat(innerDepth, () => "}")}
|
|
}
|
|
finally { return a${returnDepth}}
|
|
${repeat(outerDepth, () => "}")}
|
|
})
|
|
`
|
|
)();
|
|
}
|
|
|
|
function test(result, argument, ...args) {
|
|
let f = createSimple(...args);
|
|
|
|
let r = f(argument);
|
|
if (r !== result) {
|
|
throw new Error(r);
|
|
}
|
|
}
|
|
|
|
|
|
test("0", [1,2], 1, 1, 0);
|
|
test("0", [1,2], 2, 1, 0);
|
|
test("0", [1,2], 2, 4, 1);
|
|
test("0", [1,2], 1, 0, 0);
|