diff options
Diffstat (limited to 'deps/v8/test/mjsunit/regress/regress-5648.js')
-rw-r--r-- | deps/v8/test/mjsunit/regress/regress-5648.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/deps/v8/test/mjsunit/regress/regress-5648.js b/deps/v8/test/mjsunit/regress/regress-5648.js new file mode 100644 index 0000000000..3e9ea07456 --- /dev/null +++ b/deps/v8/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); |