function foo(value) {
    return !!value;
}

noInline(foo);

var tests = [
    [0, false],
    [1, true],
    [0/0, false],
    [0/-1, false],
    [0.0, false],
    ["", false],
    ["f", true],
    ["hello", true],
    [{}, true],
    [[], true],
    [null, false],
    [void 0, false],
    [false, false],
    [true, true],
    [makeMasquerader(), false]
];

for (var i = 0; i < 10000; ++i) {
    for (var j = 0; j < tests.length; ++j) {
        var input = tests[j][0];
        var expected = tests[j][1];
        var result = foo(input);
        if (result !== expected)
            throw "Error: bad result for " + input + ": " + result;
    }
}
