scoped-then-direct-arguments-get-by-val-in-baseline.js   [plain text]


function direct() {
    return arguments;
}

function scoped(a) {
    if (!effectful42())
        return function() { return a; }
    return arguments;
}

function foo(a) {
    try {
        return a[0];
    } catch (e) {
        return -23;
    }
}

for (var i = 0; i < 100; ++i) {
    var result = foo(scoped(42));
    if (result != 42)
        throw "Error: bad result: " + result;
}

for (var i = 0; i < 100; ++i) {
    var result = foo(direct(42));
    if (result != 42)
        throw "Error: bad result: " + result;
}