• Benedikt Meurer's avatar
    [async-generators] Add fast-path to skip "then" lookup in AsyncGeneratorResolve. · cf080aeb
    Benedikt Meurer authored
    This extends the Promise#then protector to also guard the intrinsic
    %ObjectPrototype%, making it usable for fast-path logic in the
    AsyncGeneratorResolve operation, where we can skip the "then" lookup
    on the iteratorResult in that case. We also add a corresponding fast-
    path to the ResolvePromise builtin itself, which avoids the second
    "then" lookup on the async iterator side.
    
    This reduces execution time of the fibonacci-async-es2017-native test
    from 298.16ms to 280.55ms, which corresponds to an improvement of ~6%
    in this case.
    
    This is a rebased reland of
    
      https://chromium-review.googlesource.com/967203
    
    which landed earlier, but had to be reverted as part of the mega-revert
    that was necessary to fix the async_hooks breakage in Node 10.
    
    Bug: v8:7253
    Change-Id: Id9dd1ddc4a8285d64e92cd2030f3168a12e4b509
    Reviewed-on: https://chromium-review.googlesource.com/1130523
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54352}
    cf080aeb
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni 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...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython 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...
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...