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-async-await 6 7 // Async functions don't get sloppy-mode block-scoped function hoisting 8 9 // No hoisting to the global scope 10 11 { 12 async function foo() {} 13 assertEquals('function', typeof foo); 14 } 15 assertEquals('undefined', typeof foo); 16 17 // No hoisting within a function scope 18 (function() { 19 { async function bar() {} } 20 assertEquals('undefined', typeof bar); 21 })(); 22 23 // Lexical shadowing allowed, no hoisting 24 (function() { 25 var y; 26 async function x() { y = 1; } 27 { async function x() { y = 2; } } 28 x(); 29 assertEquals(1, y); 30 })(); 31