summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/statements/for-loop-declaration-contains-initializer.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--js/src/tests/non262/statements/for-loop-declaration-contains-initializer.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/js/src/tests/non262/statements/for-loop-declaration-contains-initializer.js b/js/src/tests/non262/statements/for-loop-declaration-contains-initializer.js
new file mode 100644
index 0000000000..7010c9eba9
--- /dev/null
+++ b/js/src/tests/non262/statements/for-loop-declaration-contains-initializer.js
@@ -0,0 +1,50 @@
+/*
+ * Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/licenses/publicdomain/
+ */
+
+var gTestfile = "for-loop-declaration-contains-computed-name.js";
+var BUGNUMBER = 1233767;
+var summary =
+ "Support initializer defaults in destructuring declarations in for-in/of " +
+ "loop heads";
+
+print(BUGNUMBER + ": " + summary);
+
+/**************
+ * BEGIN TEST *
+ **************/
+
+var count;
+var expr;
+
+expr = [{ z: 42, 42: "hi" }, { 7: 'fnord' }];
+count = 0;
+for (var { z: x = 7, [x]: y = 3 } of expr)
+{
+ if (count === 0) {
+ assertEq(x, 42);
+ assertEq(y, "hi");
+ } else {
+ assertEq(x, 7);
+ assertEq(y, "fnord");
+ }
+
+ count++;
+}
+
+count = 0;
+for (var { length: x, [x - 1 + count]: y = "psych" } in "foo")
+{
+ assertEq(x, 1);
+ assertEq(y, count === 0 ? "0" : "psych");
+
+ count++;
+}
+
+/******************************************************************************/
+
+if (typeof reportCompare === "function")
+ reportCompare(true, true);
+
+print("Tests complete");