Skip to content

Commit 51420ba

Browse files
committed
Fix async context usage for PromiseReaction
1 parent 0e31495 commit 51420ba

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

Source/JavaScriptCore/builtins/PromiseOperations.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -586,9 +586,12 @@ function promiseResolveThenableJobWithoutPromiseFast(thenable, onFulfilled, onRe
586586
var flags = @getPromiseInternalField(thenable, @promiseFieldFlags);
587587
var state = flags & @promiseStateMask;
588588
var reactionsOrResult = @getPromiseInternalField(thenable, @promiseFieldReactionsOrResult);
589-
if (state === @promiseStatePending)
589+
if (state === @promiseStatePending) {
590+
var asyncContext = @getInternalField(@asyncContext, 0);
591+
if (asyncContext)
592+
context = [context, asyncContext];
590593
@putPromiseInternalField(thenable, @promiseFieldReactionsOrResult, @promiseReactionCreate(@undefined, onFulfilled, onRejected, context, reactionsOrResult));
591-
else {
594+
} else {
592595
if (state === @promiseStateRejected) {
593596
if (!(flags & @promiseFlagsIsHandled))
594597
@hostPromiseRejectionTracker(thenable, @promiseRejectionHandle);
@@ -691,9 +694,12 @@ function performPromiseThen(promise, onFulfilled, onRejected, promiseOrCapabilit
691694
var reactionsOrResult = @getPromiseInternalField(promise, @promiseFieldReactionsOrResult);
692695
var flags = @getPromiseInternalField(promise, @promiseFieldFlags);
693696
var state = flags & @promiseStateMask;
694-
if (state === @promiseStatePending)
697+
if (state === @promiseStatePending) {
698+
var asyncContext = @getInternalField(@asyncContext, 0);
699+
if (asyncContext)
700+
context = [context, asyncContext];
695701
@putPromiseInternalField(promise, @promiseFieldReactionsOrResult, @promiseReactionCreate(promiseOrCapability, onFulfilled, onRejected, context, reactionsOrResult));
696-
else {
702+
} else {
697703
var handler;
698704

699705
if (state === @promiseStateRejected) {

0 commit comments

Comments
 (0)