33 lines
630 B
JavaScript
33 lines
630 B
JavaScript
function shouldBe(actual, expected) {
|
|
if (actual !== expected)
|
|
throw new Error('bad value: ' + actual);
|
|
}
|
|
|
|
function inlined(cond)
|
|
{
|
|
if (!cond)
|
|
throw new Error("OK");
|
|
}
|
|
function test()
|
|
{
|
|
try {
|
|
inlined.apply(undefined, arguments);
|
|
} catch (error) {
|
|
shouldBe(String(error), `Error: OK`);
|
|
shouldBe(arguments.length, 3);
|
|
shouldBe(arguments[0], 0);
|
|
shouldBe(arguments[1], 2);
|
|
shouldBe(arguments[2], 3);
|
|
}
|
|
}
|
|
noInline(test);
|
|
|
|
for (var i = 0; i < 1e7; ++i) {
|
|
test(1, 2, 3);
|
|
}
|
|
test(0, 2, 3);
|
|
test(0, 2, 3);
|
|
test(0, 2, 3);
|
|
test(0, 2, 3);
|
|
test(0, 2, 3);
|