summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/arguments/inline-rest-array-creation.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/arguments/inline-rest-array-creation.js')
-rw-r--r--js/src/jit-test/tests/arguments/inline-rest-array-creation.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/arguments/inline-rest-array-creation.js b/js/src/jit-test/tests/arguments/inline-rest-array-creation.js
new file mode 100644
index 000000000..34998d4cb
--- /dev/null
+++ b/js/src/jit-test/tests/arguments/inline-rest-array-creation.js
@@ -0,0 +1,83 @@
+function zero(...rest)
+{
+ assertEq(rest.length, 0, "zero rest wrong length");
+}
+
+function tzero()
+{
+ zero();
+}
+
+tzero(); tzero(); tzero();
+
+function one(...rest)
+{
+ assertEq(rest.length, 1, "one rest wrong length");
+}
+
+function tone()
+{
+ one(0);
+}
+
+tone(); tone(); tone();
+
+function two(...rest)
+{
+ assertEq(rest.length, 2, "two rest wrong length");
+}
+
+function ttwo()
+{
+ two(0, 1);
+}
+
+ttwo(); ttwo(); ttwo();
+
+function zeroWithLeading0(x, ...rest)
+{
+ assertEq(rest.length, 0, "zeroWithLeading0 rest wrong length");
+}
+
+function tzeroWithLeading0()
+{
+ zeroWithLeading0();
+}
+
+tzeroWithLeading0(); tzeroWithLeading0(); tzeroWithLeading0();
+
+function zeroWithLeading1(x, ...rest)
+{
+ assertEq(rest.length, 0, "zeroWithLeading1 rest wrong length");
+}
+
+function tzeroWithLeading1()
+{
+ zeroWithLeading1(0);
+}
+
+tzeroWithLeading1(); tzeroWithLeading1(); tzeroWithLeading1();
+
+function oneWithLeading(x, ...rest)
+{
+ assertEq(rest.length, 1, "oneWithLeading rest wrong length");
+}
+
+function toneWithLeading()
+{
+ oneWithLeading(0, 1);
+}
+
+toneWithLeading(); toneWithLeading(); toneWithLeading();
+
+function twoWithLeading(x, ...rest)
+{
+ assertEq(rest.length, 2, "twoWithLeading rest wrong length");
+}
+
+function ttwoWithLeading()
+{
+ twoWithLeading(0, 1, 2);
+}
+
+ttwoWithLeading(); ttwoWithLeading(); ttwoWithLeading();