| 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; |
| } |
| } |