| /* Any copyright is dedicated to the Public Domain. |
| * http://creativecommons.org/licenses/publicdomain/ */ |
| |
| var symbols = [ |
| Symbol(), |
| Symbol("0"), |
| Symbol.for("snowman"), |
| Symbol.iterator |
| ]; |
| |
| var values = [ |
| undefined, null, 0, 3.14, -0, NaN, "", "alphabet", Symbol("0"), |
| {}, [] |
| ]; |
| |
| for (var comparator of ["==", "!=", "===", "!=="]) { |
| var f = Function("a, b", "return a " + comparator + " b;"); |
| var expected = (comparator[0] == '!'); |
| for (var a of symbols) { |
| for (var b of values) |
| assertEq(f(a, b), expected); |
| } |
| } |
| |
| for (var comparator of ["<", "<=", ">", ">="]) { |
| var f = Function("a, b", "return a " + comparator + " b;"); |
| for (var a of symbols) { |
| for (var b of values) |
| assertThrowsInstanceOf(() => f(a, b), TypeError); |
| } |
| } |
| |
| if (typeof reportCompare === "function") |
| reportCompare(0, 0); |