array-basic.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. load("test-common.js");
  2. try {
  3. var a = [1, 2, 3];
  4. assert(typeof a === "object");
  5. assert(a.length === 3);
  6. assert(a[0] === 1);
  7. assert(a[1] === 2);
  8. assert(a[2] === 3);
  9. a[1] = 5;
  10. assert(a[1] === 5);
  11. assert(a.length === 3);
  12. a.push(7);
  13. assert(a[3] === 7);
  14. assert(a.length === 4);
  15. a = [,];
  16. assert(a.length === 1);
  17. assert(a.toString() === "");
  18. assert(a[0] === undefined);
  19. a = [,,,,];
  20. assert(a.length === 4);
  21. assert(a.toString() === ",,,");
  22. assert(a[0] === undefined);
  23. assert(a[1] === undefined);
  24. assert(a[2] === undefined);
  25. assert(a[3] === undefined);
  26. a = [1,,2,,,3,];
  27. assert(a.length === 6);
  28. assert(a.toString() === "1,,2,,,3");
  29. assert(a[0] === 1);
  30. assert(a[1] === undefined);
  31. assert(a[2] === 2);
  32. assert(a[3] === undefined);
  33. assert(a[4] === undefined);
  34. assert(a[5] === 3);
  35. a = [1,,2,,,3,];
  36. Object.defineProperty(a, 1, {
  37. get() {
  38. return this.secret_prop;
  39. },
  40. set(value) {
  41. this.secret_prop = value;
  42. },
  43. });
  44. assert(a.length === 6);
  45. assert(a.toString() === "1,,2,,,3");
  46. assert(a.secret_prop === undefined);
  47. a[1] = 20;
  48. assert(a.length === 6);
  49. assert(a.toString() === "1,20,2,,,3");
  50. assert(a.secret_prop === 20);
  51. console.log("PASS");
  52. } catch (e) {
  53. console.log("FAIL: " + e);
  54. }