mirror of https://github.com/tc39/test262.git
71 lines
1.4 KiB
JavaScript
71 lines
1.4 KiB
JavaScript
// FIXME: unskip when this is solved
|
|
// https://bugs.webkit.org/show_bug.cgi?id=191163
|
|
//@ skip if $architecture == "mips" or $architecture == "arm"
|
|
//@ if $buildType == "release" then runDefault else skip end
|
|
|
|
function assert(b) {
|
|
if (!b)
|
|
throw new Error("Bad assertion")
|
|
}
|
|
noInline(assert);
|
|
|
|
let tests = [
|
|
[true, true],
|
|
[false, false],
|
|
["", false],
|
|
["" + "" + "", false],
|
|
["foo", true],
|
|
["foo" + "bar", true],
|
|
[{}, true],
|
|
[Symbol(), true],
|
|
[undefined, false],
|
|
[null, false],
|
|
[0, false],
|
|
[-0, false],
|
|
[+0, false],
|
|
[NaN, false],
|
|
[10, true],
|
|
[10.2012, true],
|
|
[function() { }, true],
|
|
[new String("foo"), true],
|
|
[new String(""), true],
|
|
[new String, true]
|
|
];
|
|
|
|
function test1(c) {
|
|
return !!c;
|
|
}
|
|
noInline(test1);
|
|
|
|
function test2(c) {
|
|
if (c)
|
|
return true;
|
|
return false;
|
|
}
|
|
noInline(test2);
|
|
|
|
function test3(c) {
|
|
if (!c)
|
|
return false;
|
|
return true;
|
|
}
|
|
noInline(test3);
|
|
|
|
let testFunctions = [test1, test2, test3];
|
|
|
|
for (let testFunction of testFunctions) {
|
|
for (let i = 0; i < 10000; i++) {
|
|
let item = tests[i % tests.length];
|
|
assert(testFunction(item[0]) === item[1]);
|
|
}
|
|
}
|
|
|
|
let masquerader = makeMasquerader();
|
|
for (let testFunction of testFunctions) {
|
|
for (let i = 0; i < 10000; i++) {
|
|
for (let i = 0; i < 10000; i++) {
|
|
assert(testFunction(masquerader) === false);
|
|
}
|
|
}
|
|
}
|