Source code

Revision control

Copy as Markdown

Other Tools

/* Any copyright is dedicated to the Public Domain.
// 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);