• 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
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...