| /* 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); |