array-spread.js 820 B

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