• Caitlin Potter's avatar
    [async-await] desugar Await in BytecodeGenerator · 8b5b444a
    Caitlin Potter authored
    This includes several changes. From most to least interesting:
    
    - No longer implement AwaitExpressions using a do-expression.
    - Reduces frame-size of async generators by not allocating temporary
      variables to hold results of Await epxressions.
    - Streamline and reduce generated bytecodes for Await.
    - Debugger no longer emits a debug::kCallBreakLocation breakpoint for
    the JS-builtin call performed for Await, and instead only emits such
    a breakpoint if the operand of Await is actually a call.
    - Push fewer parameters to Await* builtins, using the receiver for the
      first parameter (possible now that the CallRuntime invocation not
      part of the AST).
    - Adds a new Await AST node. No new members or anything, but it seemed
      palatable to avoid having `if (is_await())` in a number of
      VisitSuspend functions.
    
    BUG=v8:5855, v8:5099, v8:4483
    R=rmcilroy@chromium.org, kozyatinskiy@chromium.org, yangguo@chromium.org
    TBR=bmeurer@chromium.org
    
    Change-Id: I9cd3fda99cd40295c04fdf1aea01b5d83fac6caf
    Reviewed-on: https://chromium-review.googlesource.com/558806
    Commit-Queue: Georg Neis <neis@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Reviewed-by: 's avatarAleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46666}
    8b5b444a
Name
Last commit
Last update
..
arm Loading commit data...
arm64 Loading commit data...
ia32 Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
ppc Loading commit data...
s390 Loading commit data...
x64 Loading commit data...
x87 Loading commit data...
OWNERS Loading commit data...
full-codegen.cc Loading commit data...
full-codegen.h Loading commit data...