tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

symbols.js (746B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/licenses/publicdomain/ */
      3 
      4 load(libdir + "asserts.js");
      5 
      6 var s = new Set;
      7 
      8 // Symbols can be stored in Sets.
      9 var sym = Symbol();
     10 s.add(sym);
     11 assertEq(s.has(sym), true);
     12 assertEq(s.has(Symbol()), false);
     13 assertEq([...s][0], sym);
     14 s.add(sym);
     15 assertEq(s.has(sym), true);
     16 assertEq(s.size, 1);
     17 s.delete(sym);
     18 assertEq(s.has(sym), false);
     19 assertEq(s.size, 0);
     20 
     21 // Symbols returned by Symbol.for() can be in Sets.
     22 var str = "how much wood would a woodchuck chuck if a woodchuck could chuck wood";
     23 var s2  = "how much wood would a woodchuck chuck if could";
     24 var arr = str.split(" ").map(Symbol.for);
     25 s = new Set(arr);
     26 assertDeepEq([...s], s2.split(" ").map(Symbol.for));