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