summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/tests/arguments/dynamicBindings.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/jit-test/tests/arguments/dynamicBindings.js')
-rw-r--r--js/src/jit-test/tests/arguments/dynamicBindings.js32
1 files changed, 32 insertions, 0 deletions
diff --git a/js/src/jit-test/tests/arguments/dynamicBindings.js b/js/src/jit-test/tests/arguments/dynamicBindings.js
new file mode 100644
index 0000000000..326038e12b
--- /dev/null
+++ b/js/src/jit-test/tests/arguments/dynamicBindings.js
@@ -0,0 +1,32 @@
+
+function testEval(x, y) {
+ x = 5;
+ eval("arguments[0] += 10");
+ assertEq(x, 15);
+}
+for (var i = 0; i < 5; i++)
+ testEval(3);
+
+function testEvalWithArguments(x, y) {
+ eval("arguments[0] += 10");
+ assertEq(arguments[y], 13);
+}
+for (var i = 0; i < 5; i++)
+ testEvalWithArguments(3, 0);
+
+function testNestedEval(x, y) {
+ x = 5;
+ eval("eval('arguments[0] += 10')");
+ assertEq(x, 15);
+}
+for (var i = 0; i < 5; i++)
+ testNestedEval(3);
+
+function testWith(x, y) {
+ with ({}) {
+ arguments[0] += 10;
+ assertEq(x, 13);
+ }
+}
+for (var i = 0; i < 5; i++)
+ testWith(3);