function foo(a, b) {
    return [a, b];
}

function bar() {
    return foo.apply(this, arguments);
}

function baz() {
    return bar(42);
}

noInline(baz);

for (var i = 0; i < 10000; ++i) {
    var result = baz();
    if (!(result instanceof Array))
        throw "Error: result is not an array.";
    if (result.length != 2)
        throw "Error: result doesn't have length 4.";
    if (result[0] != 42)
        throw "Error: first element is not 42: " + result[0];
    for (var j = 1; j < 2; ++j) {
        if (result[j] !== void 0)
            throw "Error: element " + j + " is not undefined: " + result[j];
    }
}

