double-rep-with-non-cell.js   [plain text]


// Only bool, undefined and null
function addNullBoolUndefined(a, b) {
    return a + b;
}
noInline(addNullBoolUndefined);

for (var i = 0; i < 1e4; ++i) {
    var value = addNullBoolUndefined(0.5, null);
    if (value !== 0.5)
        throw "addNullBoolUndefined(0.5, null) failed with i = " + i + " returned value = " + value;

    var value = addNullBoolUndefined(null, undefined);
    if (value === value)
        throw "addNullBoolUndefined(null, undefined) failed with i = " + i + " returned value = " + value;

    var value = addNullBoolUndefined(true, null);
    if (value !== 1)
        throw "addNullBoolUndefined(true, null) failed with i = " + i + " returned value = " + value;

    var value = addNullBoolUndefined(undefined, false);
    if (value === value)
        throw "addNullBoolUndefined(undefined, false) failed with i = " + i + " returned value = " + value;

    var value = addNullBoolUndefined(false, true);
    if (value !== 1)
        throw "addNullBoolUndefined(false, true) failed with i = " + i + " returned value = " + value;

    var value = addNullBoolUndefined(null, 42);
    if (value !== 42)
        throw "addNullBoolUndefined(null, 42) failed with i = " + i + " returned value = " + value;

}