blob: 23890d14e7c97b598f80a6dc4353d7f2bf2f8ca1 [file] [log] [blame]
function foo(a, b) {
return a + b;
}
function verify(a, b) {
if (a !== b)
throw "Error: the two arguments objects aren't identical.";
if (a[0] !== 42)
throw "Error: the first argument isn't 42 (a).";
if (b[0] !== 42)
throw "Error: the first argument isn't 42 (b).";
}
noInline(verify);
var global = false;
function bar(x) {
var a = arguments;
if (global) {
x = 42;
verify(arguments, a);
}
return foo.apply(null, a);
}
function baz(a, b) {
return bar(a, b);
}
noInline(baz);
for (var i = 0; i < 10000; ++i) {
var result = baz(1, 2);
if (result != 1 + 2)
throw "Error: bad result: " + result;
}
global = true;
var result = baz(1, 2);
if (result != 42 + 2)
throw "Error: bad result at end: " + result;