delete-basic.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. load("test-common.js");
  2. try {
  3. o = {};
  4. o.x = 1;
  5. o.y = 2;
  6. o.z = 3;
  7. assert(Object.getOwnPropertyNames(o).length === 3);
  8. assert(delete o.x === true);
  9. assert(o.hasOwnProperty('x') === false);
  10. assert(o.hasOwnProperty('y') === true);
  11. assert(o.hasOwnProperty('z') === true);
  12. assert(Object.getOwnPropertyNames(o).length === 2);
  13. assert(delete o.y === true);
  14. assert(o.hasOwnProperty('x') === false);
  15. assert(o.hasOwnProperty('y') === false);
  16. assert(o.hasOwnProperty('z') === true);
  17. assert(Object.getOwnPropertyNames(o).length === 1);
  18. assert(delete o.z === true);
  19. assert(o.hasOwnProperty('x') === false);
  20. assert(o.hasOwnProperty('y') === false);
  21. assert(o.hasOwnProperty('z') === false);
  22. assert(Object.getOwnPropertyNames(o).length === 0);
  23. a = [ 3, 5, 7 ];
  24. assert(Object.getOwnPropertyNames(a).length === 4);
  25. assert(delete a[0] === true);
  26. assert(a.hasOwnProperty(0) === false);
  27. assert(a.hasOwnProperty(1) === true);
  28. assert(a.hasOwnProperty(2) === true);
  29. assert(Object.getOwnPropertyNames(a).length === 3);
  30. assert(delete a[1] === true);
  31. assert(a.hasOwnProperty(0) === false);
  32. assert(a.hasOwnProperty(1) === false);
  33. assert(a.hasOwnProperty(2) === true);
  34. assert(Object.getOwnPropertyNames(a).length === 2);
  35. assert(delete a[2] === true);
  36. assert(a.hasOwnProperty(0) === false);
  37. assert(a.hasOwnProperty(1) === false);
  38. assert(a.hasOwnProperty(2) === false);
  39. assert(Object.getOwnPropertyNames(a).length === 1);
  40. q = {};
  41. Object.defineProperty(q, "foo", { value: 1, writable: false, enumerable: false });
  42. assert(q.foo === 1);
  43. assert(delete q.foo === false);
  44. assert(q.hasOwnProperty('foo') === true);
  45. console.log("PASS");
  46. } catch (e) {
  47. console.log("FAIL: " + e);
  48. }