blob: 21a5b1a76df6d84fb3e1646cfba9358271b575aa [file] [log] [blame]
description(
"Tests aliased uses of 'arguments' that require reification of the Arguments object on OSR exit, in the case that there is some interesting control flow prior to the exit."
);
function baz() {
return [variable];
}
var someThing = 0;
function foo() {
var result = 0;
var a = arguments;
for (var i = 0; i < a.length; ++i) {
// Just some dummy control flow.
if (someThing < 0)
throw "Error";
result += a[i];
result += baz()[0];
}
return result;
}
function bar(x) {
return foo(x);
}
var variable = 32;
var expected = "74";
silentTestPass = true;
noInline(bar);
for (var i = 0; i < 200; i = dfgIncrement({f:bar, i:i + 1, n:100})) {
if (i == 150) {
variable = "32";
expected = "\"4232\"";
}
shouldBe("bar(42)", expected);
}