//@ skip if $model == "Apple Watch Series 3" # added by mark-jsc-stress-test.py
function foo(args)
{
    var result = 0;
    for (var i = 0; i < args.length; ++i) {
        result += args[i];
        args[i] += i;
    }
    return result;
}

function bar(a, b, c, d)
{
    return [foo(arguments), a, b, c, d];
}

for (var i = 0; i < 10000; ++i) {
    var result = bar(i, i + 1, i + 2, i + 3);
    if (result.length != 5)
        throw "Bad result length in " + result;
    if (result[0] != i * 4 + 6)
        throw "Bad first element in " + result + "; expected " + (i * 3 + 6);
    if (result[1] != i)
        throw "Bad second element in " + result + "; expected " + i;
    if (result[2] != i + 1 + 1)
        throw "Bad third element in " + result + "; expected " + (i + 1 + 1);
    if (result[3] != i + 2 + 2)
        throw "Bad fourth element in " + result + "; expected " + (i + 2 + 2);
    if (result[4] != i + 3 + 3)
        throw "Bad fifth element in " + result + "; expected " + (i + 3 + 3);
}


