• Benedikt Meurer's avatar
    [builtins] Extend the @@species protector to guard Promises. · 79e91f0c
    Benedikt Meurer authored
    Use this in the PromiseThen operation to skip the (expensive) lookup in
    the SpeciesConstructor operation. This yields in a nice 3-5% improvement
    on the bluebird and wikipedia benchmarks, and paves the way for inlining
    certain Promise operations into TurboFan optimized code later.
    
    On the micro-benchmark mentioned in the bug (from the findings doc), we
    reduce the overall execution time by 25%, which makes sense given that
    Promise.prototype.then spends a significant portion of it's time just
    figuring out the appropriate constructor.
    
    Bug: v8:7253, v8:7349
    Change-Id: Ia1577b59d1b7e4b8dbda83e2186583edab76695a
    Reviewed-on: https://chromium-review.googlesource.com/880681Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50794}
    79e91f0c
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...
.editorconfig Loading commit data...
.git-blame-ignore-revs 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...
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...