Symbol.for.js 872 B

123456789101112131415161718192021222324252627282930
  1. load("test-common.js")
  2. try {
  3. const localSym = Symbol("foo");
  4. const globalSym = Symbol.for("foo");
  5. assert(localSym !== globalSym);
  6. assert(localSym !== Symbol("foo"));
  7. assert(globalSym !== Symbol("foo"));
  8. assert(globalSym === Symbol.for("foo"));
  9. assert(localSym.toString() === "Symbol(foo)");
  10. assert(globalSym.toString() === "Symbol(foo)");
  11. assert(Symbol.for(1).description === "1");
  12. assert(Symbol.for(true).description === "true");
  13. assert(Symbol.for({}).description === "[object Object]");
  14. assert(Symbol.for().description === "undefined");
  15. assert(Symbol.for(null).description === "null");
  16. assertThrowsError(() => {
  17. Symbol.for(Symbol());
  18. }, {
  19. error: TypeError,
  20. message: "Cannot convert symbol to string",
  21. });
  22. console.log("PASS");
  23. } catch (e) {
  24. console.log("FAIL: " + e);
  25. }