test-jit.js   [plain text]


load("./driver/driver.js");

function tierUpToBaseline(func, arg) 
{
    for (var i = 0; i < 50; i++)
        func(arg);
}

function tierUpToDFG(func, arg) 
{
    for (var i = 0; i < 50; i++)
        func(arg);
}

function baselineTest(arg) {
    if (arg > 20) {
        return 20;
    } else {
        return 30;
    }
}

function dfgTest(arg) {
    if (arg > 20) {
        return 20;
    } else {
        return 30;
    }
}

noInline(baselineTest);
noInline(dfgTest);

tierUpToBaseline(baselineTest, 10);
tierUpToDFG(dfgTest, 10);

assert(!hasBasicBlockExecuted(baselineTest, "return 20"), "should not have executed yet.");
assert(hasBasicBlockExecuted(baselineTest, "return 30"), "should have executed.");
baselineTest(25);
assert(hasBasicBlockExecuted(baselineTest, "return 20"), "should have executed.");

assert(!hasBasicBlockExecuted(dfgTest, "return 20"), "should not have executed yet.");
assert(hasBasicBlockExecuted(dfgTest, "return 30"), "should have executed.");
dfgTest(25);
assert(hasBasicBlockExecuted(dfgTest, "return 20"), "should have executed.");