Skip to content

Commit 68abe0f

Browse files
committed
deps: cherry-pick ca76392 from upstream V8
Original commit message: Correctly run before/after hooks for await. This fixes a bug where we didn't run before/after hooks for await when the debugger is not active, as reported downstream in nodejs#20274 Change-Id: I1948d1884c591418d87ffd1d0ccb2bebf4e908f1 Reviewed-on: https://chromium-review.googlesource.com/1039386 Commit-Queue: Benedikt Meurer <[email protected]> Reviewed-by: Yang Guo <[email protected]> Cr-Commit-Position: refs/heads/master@{nodejs#52909} Refs: v8/v8@ca76392 Fixes: nodejs#20274
1 parent 557f570 commit 68abe0f

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

common.gypi

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
# Reset this number to 0 on major V8 upgrades.
2929
# Increment by one for each non-official patch applied to deps/v8.
30-
'v8_embedder_string': '-node.5',
30+
'v8_embedder_string': '-node.6',
3131

3232
# Enable disassembler for `--print-code` v8 options
3333
'v8_enable_disassembler': 1,

deps/v8/src/builtins/builtins-async-gen.cc

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ void AsyncBuiltinsAssembler::Await(Node* context, Node* generator, Node* value,
4444
// When debugging, we need to link from the {generator} to the
4545
// {outer_promise} of the async function/generator.
4646
Label done(this);
47-
GotoIfNot(IsDebugActive(), &done);
47+
GotoIfNot(IsPromiseHookEnabledOrDebugIsActive(), &done);
4848
CallRuntime(Runtime::kSetProperty, native_context, generator,
4949
LoadRoot(Heap::kgenerator_outer_promise_symbolRootIndex),
5050
outer_promise, SmiConstant(LanguageMode::kStrict));

deps/v8/test/cctest/test-api.cc

+6
Original file line numberDiff line numberDiff line change
@@ -18107,6 +18107,12 @@ TEST(PromiseHook) {
1810718107
CHECK_EQ(v8::Promise::kFulfilled, GetPromise("p")->State());
1810818108
CHECK_EQ(9, promise_hook_data->promise_hook_count);
1810918109

18110+
promise_hook_data->Reset();
18111+
source = "(async() => await p)();\n";
18112+
18113+
CompileRun(source);
18114+
CHECK_EQ(11, promise_hook_data->promise_hook_count);
18115+
1811018116
delete promise_hook_data;
1811118117
isolate->SetPromiseHook(nullptr);
1811218118
}

0 commit comments

Comments
 (0)