1 // 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 } 15 assertEquals('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 })(); 29