summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/arrow-functions/arguments-4.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/arrow-functions/arguments-4.js')
-rw-r--r--js/src/jit-test/tests/arrow-functions/arguments-4.js22
1 files changed, 22 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/arrow-functions/arguments-4.js b/js/src/jit-test/tests/arrow-functions/arguments-4.js
new file mode 100644
index 000000000..8a28cee06
--- /dev/null
+++ b/js/src/jit-test/tests/arrow-functions/arguments-4.js
@@ -0,0 +1,22 @@
+load(libdir + "asserts.js");
+
+// 'arguments' is allowed in a non-arrow-function with a rest param.
+assertEq((function(...rest) { return (x => arguments)(1, 2)})().length, 0);
+
+function restAndArgs(...rest) {
+ return () => eval("arguments");
+}
+
+var args = restAndArgs(1, 2, 3)();
+assertEq(args.length, 3);
+assertEq(args[0], 1);
+assertEq(args[1], 2);
+assertEq(args[2], 3);
+
+(function() {
+ return ((...rest) => {
+ assertDeepEq(rest, [1, 2, 3]);
+ assertEq(arguments.length, 2);
+ assertEq(eval("arguments").length, 2);
+ })(1, 2, 3);
+})(4, 5);