/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/licenses/publicdomain/ */ // Symbol.for returns the same symbol whenever the same argument is passed. assertEq(Symbol.for("q") === Symbol.for("q"), true); // Several distinct Symbol values. var symbols = [ Symbol(), Symbol("Symbol.iterator"), Symbol("Symbol.iterator"), // distinct new symbol with the same description Symbol.for("Symbol.iterator"), Symbol.iterator ]; // Distinct symbols are never equal to each other, even if they have the same // description. for (var i = 0; i < symbols.length; i++) { for (var j = i; j < symbols.length; j++) { var expected = (i === j); assertEq(symbols[i] == symbols[j], expected); assertEq(symbols[i] != symbols[j], !expected); assertEq(symbols[i] === symbols[j], expected); assertEq(symbols[i] !== symbols[j], !expected); assertEq(Object.is(symbols[i], symbols[j]), expected); } } if (typeof reportCompare === "function") reportCompare(0, 0);