• gsathya's avatar
    Revert of Promises: Make PromiseSet operation monomorphic (patchset #1 id:1 of... · 9b606523
    gsathya authored
    Revert of Promises: Make PromiseSet operation monomorphic (patchset #1 id:1 of https://codereview.chromium.org/2025073002/ )
    
    Reason for revert:
    As a side effect of calling PromiseSet from
    FulfillPromise, clears the deferred symbol and the
    resolve/reject callback symbols. Although this
    isn't strictly necessary, not doing this seems to
    result in a leak as seen in --
    
    https://bugs.chromium.org/p/chromium/issues/detail?id=617137#c10
    
    Original issue's description:
    > Promises: Make PromiseSet operation monomorphic
    >
    > The PromiseSet operation is called with two types of promises
    > 1) A newly created promise object with no properties
    > 2) Promise object with callbacks and other properties
    >
    > PromiseSet is called with the first type of promise (with no
    > properties) from multiple call sites. PromiseSet is called with the
    > second type of promise object only from FulfillPromise. Furthermore,
    > this call only sets the value and status of the promise, the rest of
    > the values are reset to UNDEFINED (which isn't necessary).
    >
    > This patch inlines the calls to set the value and status of the
    > promise in FulfillPromise, instead of calling out to PromiseSet.
    >
    > This patch also reduces the number of symbol lookups, as we only set
    > the value and status of the promise, and don't change the callback or
    > deferred symbols.
    >
    > This patch results in a performance improvement of 2.8% over 5 runs in
    > the bluebird benchmark.
    >
    > BUG=v8:5046
    >
    > Committed: https://crrev.com/df4f8a2b9ee9e474e674301718d19b63650a0ba5
    > Cr-Commit-Position: refs/heads/master@{#36688}
    
    TBR=littledan@chromium.org,adamk@chromium.org
    # Not skipping CQ checks because original CL landed more than 1 days ago.
    BUG=v8:5046
    
    Review-Url: https://codereview.chromium.org/2047553002
    Cr-Commit-Position: refs/heads/master@{#36766}
    9b606523
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/binutils 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.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
Makefile.nacl 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...