//@ skip if $model == "Apple Watch Series 3" # added by mark-jsc-stress-test.py
//@ runFTLNoCJIT
var o1 = {
    i: 65,
    valueOf: function() { return this.i; }
};

result = 0;
function foo(a) {
    var result = String.fromCharCode(a);

    // Busy work just to allow the DFG and FTL to optimize this. If the above causes
    // us to speculation fail out to the baseline, this busy work will take a lot longer
    // to run.
    // This loop below also gets the DFG to compile this function sooner.
    var count = 0;
    for (var i = 0; i < 1000; i++)
        count++;
    return result + count;
}
noInline(foo);

var iterations;
var expectedResult;
if (this.window) {
    // The layout test doesn't like too many iterations and may time out.
    iterations = 10000;
    expectedResult = 10001;
} else {
    iterations = 100000;
    expectedResult = 100001;
}


for (var i = 0; i <= iterations; i++) {
    var resultStr;
    if (i % 2 == 2)
        resultStr = foo('65');
    else if (i % 2 == 1)
        resultStr = foo(o1);
    else
        resultStr = foo(65);
    if (resultStr == 'A1000')
        result++;
}

if (result != expectedResult)
    throw "Bad result: " + result;
