diff options
Diffstat (limited to 'js/src/tests/ecma_6/Symbol/comparisons.js')
-rw-r--r-- | js/src/tests/ecma_6/Symbol/comparisons.js | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/js/src/tests/ecma_6/Symbol/comparisons.js b/js/src/tests/ecma_6/Symbol/comparisons.js new file mode 100644 index 000000000..d2105c8a1 --- /dev/null +++ b/js/src/tests/ecma_6/Symbol/comparisons.js @@ -0,0 +1,34 @@ +/* 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); |