function-rest-params.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. load("test-common.js");
  2. try {
  3. function foo(...a) {
  4. assert(a instanceof Array);
  5. assert(a.length === 0);
  6. }
  7. foo();
  8. function foo1(...a) {
  9. assert(a instanceof Array);
  10. assert(a.length === 4);
  11. assert(a[0] === "foo");
  12. assert(a[1] === 123);
  13. assert(a[2] === undefined);
  14. assert(a[3].foo === "bar");
  15. }
  16. foo1("foo", 123, undefined, { foo: "bar" });
  17. function foo2(a, b, ...c) {
  18. assert(a === "foo");
  19. assert(b === 123);
  20. assert(c instanceof Array);
  21. assert(c.length === 0);
  22. }
  23. foo2("foo", 123);
  24. function foo3(a, b, ...c) {
  25. assert(a === "foo");
  26. assert(b === 123);
  27. assert(c instanceof Array);
  28. assert(c.length === 2);
  29. assert(c[0] === undefined);
  30. assert(c[1].foo === "bar");
  31. }
  32. foo3("foo", 123, undefined, { foo: "bar" });
  33. var foo = (...a) => {
  34. assert(a instanceof Array);
  35. assert(a.length === 0);
  36. };
  37. foo();
  38. var foo = (a, b, ...c) => {
  39. assert(a === "foo");
  40. assert(b === 123);
  41. assert(c instanceof Array);
  42. assert(c.length === 2);
  43. assert(c[0] === undefined);
  44. assert(c[1].foo === "bar");
  45. };
  46. foo("foo", 123, undefined, { foo: "bar" });
  47. console.log("PASS");
  48. } catch (e) {
  49. console.log("FAIL: " + e);
  50. }