Skip to content

Commit 6c798f7

Browse files
targosdanielleadams
authored andcommitted
deps: V8: cherry-pick 4c074516397b
Original commit message: [promises] Fix slow path when context promise hooks are present Bug: chromium:1201936 Change-Id: I1ee545e33587ddf4a5c7e1cbd64b53d36c75a146 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850936 Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#74267} Refs: v8/v8@4c07451 PR-URL: #38273 Backport-PR-URL: #38991 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Michael Dawson <midawson@redhat.com> Reviewed-By: Mary Marchini <oss@mmarchini.me>
1 parent 8537058 commit 6c798f7

File tree

4 files changed

+10
-11
lines changed

4 files changed

+10
-11
lines changed

common.gypi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636

3737
# Reset this number to 0 on major V8 upgrades.
3838
# Increment by one for each non-official patch applied to deps/v8.
39-
'v8_embedder_string': '-node.11',
39+
'v8_embedder_string': '-node.12',
4040

4141
##### V8 defaults for Node.js #####
4242

deps/v8/src/builtins/promise-jobs.tq

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
// https://tc39.es/ecma262/#sec-promise-jobs
88
namespace promise {
99
extern macro IsJSPromiseMap(Map): bool;
10+
extern macro NeedsAnyPromiseHooks(): bool;
1011

1112
// https://tc39.es/ecma262/#sec-promiseresolvethenablejob
1213
transitioning builtin
@@ -25,7 +26,7 @@ PromiseResolveThenableJob(implicit context: Context)(
2526
const promiseThen = *NativeContextSlot(ContextSlot::PROMISE_THEN_INDEX);
2627
const thenableMap = thenable.map;
2728
if (TaggedEqual(then, promiseThen) && IsJSPromiseMap(thenableMap) &&
28-
!IsIsolatePromiseHookEnabledOrDebugIsActiveOrHasAsyncEventDelegate() &&
29+
!NeedsAnyPromiseHooks() &&
2930
IsPromiseSpeciesLookupChainIntact(nativeContext, thenableMap)) {
3031
// We know that the {thenable} is a JSPromise, which doesn't require
3132
// any special treatment and that {then} corresponds to the initial

deps/v8/src/codegen/code-stub-assembler.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13843,11 +13843,11 @@ TNode<BoolT> CodeStubAssembler::
1384313843
return Word32NotEqual(flags, Int32Constant(0));
1384413844
}
1384513845

13846-
TNode<BoolT> CodeStubAssembler::
13847-
IsAnyPromiseHookEnabledOrHasAsyncEventDelegate(TNode<Uint32T> flags) {
13846+
TNode<BoolT> CodeStubAssembler::NeedsAnyPromiseHooks(TNode<Uint32T> flags) {
1384813847
uint32_t mask = Isolate::PromiseHookFields::HasContextPromiseHook::kMask |
1384913848
Isolate::PromiseHookFields::HasIsolatePromiseHook::kMask |
13850-
Isolate::PromiseHookFields::HasAsyncEventDelegate::kMask;
13849+
Isolate::PromiseHookFields::HasAsyncEventDelegate::kMask |
13850+
Isolate::PromiseHookFields::IsDebugActive::kMask;
1385113851
return IsSetWord32(flags, mask);
1385213852
}
1385313853

deps/v8/src/codegen/code-stub-assembler.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3535,12 +3535,10 @@ class V8_EXPORT_PRIVATE CodeStubAssembler
35353535
return IsAnyPromiseHookEnabledOrDebugIsActiveOrHasAsyncEventDelegate(
35363536
PromiseHookFlags());
35373537
}
3538-
TNode<BoolT> IsAnyPromiseHookEnabledOrHasAsyncEventDelegate(
3539-
TNode<Uint32T> flags);
3540-
TNode<BoolT>
3541-
IsAnyPromiseHookEnabledOrHasAsyncEventDelegate() {
3542-
return IsAnyPromiseHookEnabledOrHasAsyncEventDelegate(
3543-
PromiseHookFlags());
3538+
3539+
TNode<BoolT> NeedsAnyPromiseHooks(TNode<Uint32T> flags);
3540+
TNode<BoolT> NeedsAnyPromiseHooks() {
3541+
return NeedsAnyPromiseHooks(PromiseHookFlags());
35443542
}
35453543

35463544
// for..in helpers

0 commit comments

Comments
 (0)