test-spec-misc.js   [plain text]


var a = [ "String", false, 42 ];
var count = 0;

function getX(fromDFG) {
    if (fromDFG)
        return 42;
    return false;
}

noInline(getX);

function foo(index) {
    var result = false;
    var x = getX(DFGTrue());

    x * 2;

    var y = a[index % a.length];
    result = y === x;
    count += 1;
    return result;
}

noInline(foo);

var loopCount = 10000;

function bar() {
    var result;

    for (var i = 0; i < loopCount - 1; i++)
        result = foo(i)

    result = foo(0);

    return result;
}

var result = bar();
if (result != false)
    throw "Error: bad result expected false: " + result;
if (count != loopCount)
    throw "Error: bad count, expected: " + loopCount + ", got: " + count;