summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/statements/for-loop-declaration-contains-computed-name.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/tests/non262/statements/for-loop-declaration-contains-computed-name.js')
-rw-r--r--js/src/tests/non262/statements/for-loop-declaration-contains-computed-name.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/js/src/tests/non262/statements/for-loop-declaration-contains-computed-name.js b/js/src/tests/non262/statements/for-loop-declaration-contains-computed-name.js
new file mode 100644
index 0000000000..7928d049dc
--- /dev/null
+++ b/js/src/tests/non262/statements/for-loop-declaration-contains-computed-name.js
@@ -0,0 +1,48 @@
+/*
+ * 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 computed property names in destructuring declarations in " +
+ "for-in/of loop heads";
+
+print(BUGNUMBER + ": " + summary);
+
+/**************
+ * BEGIN TEST *
+ **************/
+
+var count;
+
+count = 0;
+for (var { [5]: x, [x]: y } of [{ 5: 42, 42: "hi" }, { 5: 17, 17: 'fnord' }])
+{
+ if (count === 0) {
+ assertEq(x, 42);
+ assertEq(y, "hi");
+ } else {
+ assertEq(x, 17);
+ assertEq(y, "fnord");
+ }
+
+ count++;
+}
+
+count = 0;
+for (var { length: x, [x - 1]: y } in "foo")
+{
+ assertEq(x, 1);
+ assertEq("" + count, y);
+
+ count++;
+}
+
+/******************************************************************************/
+
+if (typeof reportCompare === "function")
+ reportCompare(true, true);
+
+print("Tests complete");