array-spread.js 769 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. load("test-common.js");
  2. function testArray(arr) {
  3. return arr.length === 4 && arr[0] === 0 && arr[1] === 1 && arr[2] === 2 && arr[3] === 3;
  4. }
  5. try {
  6. let arr = [0, ...[1, 2], 3];
  7. assert(testArray(arr));
  8. let a = [1, 2];
  9. arr = [0, ...a, 3];
  10. assert(testArray(arr));
  11. let obj = { a: [1, 2] };
  12. arr = [0, ...obj.a, 3];
  13. assert(testArray(arr));
  14. arr = [...[], ...[...[0, 1, 2]], 3];
  15. assert(testArray(arr));
  16. assertThrowsError(
  17. () => {
  18. [...1];
  19. },
  20. {
  21. error: TypeError,
  22. message: "1 is not iterable",
  23. }
  24. );
  25. assertThrowsError(
  26. () => {
  27. [...{}];
  28. },
  29. {
  30. error: TypeError,
  31. message: "[object Object] is not iterable",
  32. }
  33. );
  34. console.log("PASS");
  35. } catch (e) {
  36. console.log("FAIL: " + e);
  37. }