blob: de2e461f95dd63843249eeec7b4309ad2203627c [file] [log] [blame]
Ben Murdoch61f157c2016-09-16 13:49:30 +01001// Copyright 2016 the V8 project authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Flags: --harmony-restrictive-generators
6
7// Generators don't get sloppy-mode block-scoped function hoisting
8
9// No hoisting to the global scope
10
11{
12 function* foo() {}
13 assertEquals('function', typeof foo);
14}
15assertEquals('undefined', typeof foo);
16
17// No hoisting within a function scope
18(function() {
19 { function* bar() {} }
20 assertEquals('undefined', typeof bar);
21})();
22
23// Lexical shadowing allowed, no hoisting
24(function() {
25 function* x() { yield 1; }
26 { function* x() { yield 2 } }
27 assertEquals(1, x().next().value);
28})();