Index: test/mjsunit/regress/regress-5648.js |
diff --git a/test/mjsunit/regress/regress-5648.js b/test/mjsunit/regress/regress-5648.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3e9ea074566ee93974e14fd88f7dcddccdb04928 |
--- /dev/null |
+++ b/test/mjsunit/regress/regress-5648.js |
@@ -0,0 +1,35 @@ |
+// Copyright 2016 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. |
+ |
+ |
+var iter = {} |
+iter[Symbol.iterator] = () => ({ |
+ next: () => ({}), |
+ return: () => {throw 666} |
+}); |
+ |
+ |
+function* foo() { |
+ for (let x of iter) {throw 42} |
+} |
+assertThrowsEquals(() => foo().next(), 42); |
+ |
+ |
+function* bar() { |
+ let x; |
+ { let gaga = () => {x}; |
+ [[x]] = iter; |
+ } |
+} |
+assertThrows(() => bar().next(), TypeError); |
+ |
+ |
+function baz() { |
+ let x; |
+ { let gaga = () => {x}; |
+ let gugu = () => {gaga}; |
+ [[x]] = iter; |
+ } |
+} |
+assertThrows(baz, TypeError); |