Symbol.keyFor.js 836 B

12345678910111213141516171819202122232425262728293031
  1. load("test-common.js")
  2. try {
  3. const localSym = Symbol("foo");
  4. const globalSym = Symbol.for("foo");
  5. assert(Symbol.keyFor(localSym) === undefined);
  6. assert(Symbol.keyFor(globalSym) === "foo");
  7. const testThrows = (value, str) => {
  8. assertThrowsError(() => {
  9. Symbol.keyFor(value);
  10. }, {
  11. error: TypeError,
  12. message: str + " is not a symbol",
  13. });
  14. };
  15. testThrows(1, "1");
  16. testThrows(null, "null");
  17. testThrows(undefined, "undefined");
  18. testThrows([], "[object Array]");
  19. testThrows({}, "[object Object]");
  20. testThrows(true, "true");
  21. testThrows("foobar", "foobar");
  22. testThrows(function(){}, "[object ScriptFunction]"); // FIXME: Better function stringification
  23. console.log("PASS");
  24. } catch (e) {
  25. console.log("FAIL: " + e);
  26. }