• 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
..
OWNERS Loading commit data...
array-iterator.js Loading commit data...
array.js Loading commit data...
arraybuffer.js Loading commit data...
collection-iterator.js Loading commit data...
collection.js Loading commit data...
harmony-async-await.js Loading commit data...
harmony-atomics.js Loading commit data...
harmony-regexp-exec.js Loading commit data...
harmony-sharedarraybuffer.js Loading commit data...
harmony-simd.js Loading commit data...
harmony-species.js Loading commit data...
harmony-string-padding.js Loading commit data...
harmony-unicode-regexps.js Loading commit data...
i18n.js Loading commit data...
icu-case-mapping.js Loading commit data...
intl-extra.js Loading commit data...
iterator-prototype.js Loading commit data...
macros.py Loading commit data...
math.js Loading commit data...
messages.js Loading commit data...
prologue.js Loading commit data...
promise-extra.js Loading commit data...
promise.js Loading commit data...
proxy.js Loading commit data...
regexp.js Loading commit data...
runtime.js Loading commit data...
spread.js Loading commit data...
string-iterator.js Loading commit data...
string.js Loading commit data...
symbol.js Loading commit data...
templates.js Loading commit data...
typedarray.js Loading commit data...
v8natives.js Loading commit data...
weak-collection.js Loading commit data...