Home | History | Annotate | Download | only in harmony
      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