//@ noNoLLIntRunLayoutTest if $architecture == "arm"

description(
"Tests that performing an OSR entry into a loop with a hoisted structure check, where the loop may clobber the world, works."
);

function foo(o, n) {
    var result = 0;
    for (var i = 0; i < n; ++i) {
        result += o.f;
        result += o.g(i);
        if (i > 1)
            result += o.i;
        if (i > 2)
            result += o.j;
        o = o.h(i);
        result += o.g(i);
    }
    return result;
}

function bar(i) {
    var str = "var x" + i + " = 42; x" + i;
    return eval(str);
}

var counter = 0;
function baz(i) {
    var str = "var x" + i + " = 42; x" + i;
    eval(str);
    if (i == 1100)
        return {g:bar, i:3, j:4, h:baz, f:2 + counter++};
    return this;
}

var object = {f:1, g:bar, h:baz, i:2, j:3};
shouldBe("foo(object, 10000)", "926684");


