/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/licenses/publicdomain/ */ var s = new Set; // Symbols can be stored in Sets. var sym = Symbol(); s.add(sym); assertEq(s.has(sym), true); assertEq(s.has(Symbol()), false); assertEq([...s][0], sym); s.add(sym); assertEq(s.has(sym), true); assertEq(s.size, 1); s.delete(sym); assertEq(s.has(sym), false); assertEq(s.size, 0); // Symbols returned by Symbol.for() can be in Sets. var str = "how much wood would a woodchuck chuck if a woodchuck could chuck wood"; var s2 = "how much wood would a woodchuck chuck if could"; var arr = [for (word of str.split(" ")) Symbol.for(word)]; s = new Set(arr); assertDeepEq([...s], [for (word of s2.split(" ")) Symbol.for(word)]); if (typeof reportCompare === "function") reportCompare(0, 0);