summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_6/Set/symbols.js
blob: 364b3155c24a362c8f93833c47f8ce112727e37d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* 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);