haikuwebkit/LayoutTests/js/script-tests/dfg-arguments-osr-exit-mult...

43 lines
844 B
JavaScript

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);
}