ftl-get-my-argument-by-val-inlined-and-not-inlined.js   [plain text]


function foo(i) {
    return arguments[i];
}

function bar(i) {
    return [arguments[i], foo(i, "one", 2, "three"), arguments[i]];
}

noInline(bar);

function arraycmp(a, b) {
    if (a.length != b.length)
        return false;
    for (var i = 0; i < a.length; ++i) {
        if (a[i] != b[i])
            return false;
    }
    return true;
}

for (var i = 0; i < 10000; ++i) {
    var thingies = [i % 4, "one", 2, "three"];
    var otherThingies = [i % 4, "five", 6, "seven"];
    var result = bar(i % 4, "five", 6, "seven");
    if (!arraycmp(result, [otherThingies[i % 4], thingies[i % 4], otherThingies[i % 4]]))
        throw "Error: bad result for i = " + i + ": " + result;
}