Promises: Short circuit promise resolution procedure
When |ResolvePromise| is resolved with a promise that is already fulfilled or resolved, we can short circuit the promise resolution procedure by directly looking up the result from the promise. We save creating two closures, enqueuing in the promise queue, and running through PromiseThen. This patch uses IsPromise to check if the |resolution| object is a native promise and also checks if |resolution.then| hasn't been monkey patched. This patch adds some redundant code from PromiseThen like setting the promiseHasHandlerSymbol and calling PromiseRevokeReject call, which would've been taken care of by PromiseThen in the old code path. This patch results in a 13.8% improvement(over 5 runs) in the bluebird benchmarks. BUG=v8:5046 Review-Url: https://codereview.chromium.org/2028253004 Cr-Commit-Position: refs/heads/master@{#36765}
Showing
Please
register
or
sign in
to comment