Object.getOwnPropertyDescriptor.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. load("test-common.js");
  2. try {
  3. let o = {
  4. foo: "bar",
  5. get x() { },
  6. set ["hi" + 1](_) { },
  7. };
  8. Object.defineProperty(o, "baz", {
  9. enumerable: false,
  10. writable: true,
  11. value: 10,
  12. });
  13. let d = Object.getOwnPropertyDescriptor(o, "foo");
  14. assert(d.enumerable === true);
  15. assert(d.configurable === true);
  16. assert(d.writable === true);
  17. assert(d.value === "bar");
  18. assert(d.get === undefined);
  19. assert(d.set === undefined);
  20. let d = Object.getOwnPropertyDescriptor(o, "x");
  21. assert(d.enumerable === true);
  22. assert(d.configurable === true);
  23. assert(d.writable === undefined);
  24. assert(d.value === undefined);
  25. assert(typeof d.get === "function");
  26. assert(d.set === undefined);
  27. let d = Object.getOwnPropertyDescriptor(o, "hi1");
  28. assert(d.enumerable === true);
  29. assert(d.configurable === true);
  30. assert(d.writable === undefined);
  31. assert(d.value === undefined);
  32. assert(d.get === undefined);
  33. assert(typeof d.set === "function");
  34. let d = Object.getOwnPropertyDescriptor(o, "baz");
  35. assert(d.enumerable === false);
  36. assert(d.configurable === false);
  37. assert(d.writable === true);
  38. assert(d.value === 10);
  39. assert(d.get === undefined);
  40. assert(d.set === undefined);
  41. console.log("PASS");
  42. } catch (e) {
  43. console.log("FAIL: " + e);
  44. }