function-name.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. load("test-common.js");
  2. try {
  3. assert((function () { }).name === "");
  4. var foo = function () { }
  5. assert(foo.name === "foo");
  6. assert((foo.name = "bar") === "bar");
  7. assert(foo.name === "foo");
  8. var a, b;
  9. a = b = function () { }
  10. assert(a.name === "b");
  11. assert(b.name === "b");
  12. var arr = [
  13. function () { },
  14. function () { },
  15. function () { }
  16. ];
  17. assert(arr[0].name === "arr");
  18. assert(arr[1].name === "arr");
  19. assert(arr[2].name === "arr");
  20. var f;
  21. var o = { a: function () { } };
  22. assert(o.a.name === "a");
  23. f = o.a;
  24. assert(f.name === "a");
  25. assert(o.a.name === "a");
  26. o = { ...o, b: f };
  27. assert(o.a.name === "a");
  28. assert(o.b.name === "a");
  29. o.c = function () { };
  30. assert(o.c.name === "c");
  31. function bar() { }
  32. assert(bar.name === "bar");
  33. assert((bar.name = "baz") === "baz");
  34. assert(bar.name === "bar");
  35. assert(console.log.name === "log");
  36. assert((console.log.name = "warn") === "warn");
  37. assert(console.log.name === "log");
  38. console.log("PASS");
  39. } catch (e) {
  40. console.log("FAIL: " + e);
  41. }