Index: test/mjsunit/harmony/regress/regress-4585.js |
diff --git a/test/mjsunit/harmony/regress/regress-4585.js b/test/mjsunit/harmony/regress/regress-4585.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ada91c67ca48cd78dcbb2733d2c711fe20cf6405 |
--- /dev/null |
+++ b/test/mjsunit/harmony/regress/regress-4585.js |
@@ -0,0 +1,16 @@ |
+// Copyright 2015 the V8 project authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+// Flags: --harmony-destructuring-bind |
+ |
+assertThrows(`for(const { method() {} } = this) {}`, SyntaxError); |
+assertThrows(`var { method() {} } = this;`, SyntaxError); |
+assertThrows(`for(const { *method() {} } = this) {}`, SyntaxError); |
+assertThrows(`var { *method() {} } = this;`, SyntaxError); |
+assertThrows(`for(var { get foo() {} } = this) {}`, SyntaxError); |
+assertThrows(`for(var { set foo() {} } = this) {}`, SyntaxError); |
+ |
+// Still OK in other objects |
+for (var { name = "" + { toString() { return "test" } } } in { a: 1}) break; |
+assertEquals(name, "test"); |