Skip to content

Commit 53ea813

Browse files
addaleaxrefack
authored andcommitted
deps: V8: cherry-pick 2f79d68
Original commit message: Deprecate MicrotasksCompletedCallback in favor to use *WithData version This adds overloads of v8::Isolate::{Add,Remove}MicrotaskCompletedCallback, that use MicrotasksCompletedCallbackWithData, and marks the original one as V8_DEPRECATE_SOON for transition. Bug: v8:8124 Change-Id: I124c3108545e1a2b29cd95620f36901431663c65 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1493766 Reviewed-by: Yang Guo <[email protected]> Commit-Queue: Taiju Tsuiki <[email protected]> Cr-Commit-Position: refs/heads/master@{#60045} Refs: v8/v8@2f79d68 PR-URL: #26685 Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
1 parent cc75ba3 commit 53ea813

File tree

7 files changed

+39
-13
lines changed

7 files changed

+39
-13
lines changed

common.gypi

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
# Reset this number to 0 on major V8 upgrades.
3939
# Increment by one for each non-official patch applied to deps/v8.
40-
'v8_embedder_string': '-node.0',
40+
'v8_embedder_string': '-node.1',
4141

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

deps/v8/include/v8.h

+12-3
Original file line numberDiff line numberDiff line change
@@ -6744,7 +6744,8 @@ class PromiseRejectMessage {
67446744
typedef void (*PromiseRejectCallback)(PromiseRejectMessage message);
67456745

67466746
// --- Microtasks Callbacks ---
6747-
typedef void (*MicrotasksCompletedCallback)(Isolate*);
6747+
V8_DEPRECATE_SOON("Use *WithData version.",
6748+
typedef void (*MicrotasksCompletedCallback)(Isolate*));
67486749
typedef void (*MicrotasksCompletedCallbackWithData)(Isolate*, void*);
67496750
typedef void (*MicrotaskCallback)(void* data);
67506751

@@ -8231,12 +8232,20 @@ class V8_EXPORT Isolate {
82318232
* Executing scripts inside the callback will not re-trigger microtasks and
82328233
* the callback.
82338234
*/
8234-
void AddMicrotasksCompletedCallback(MicrotasksCompletedCallback callback);
8235+
V8_DEPRECATE_SOON("Use *WithData version.",
8236+
void AddMicrotasksCompletedCallback(
8237+
MicrotasksCompletedCallback callback));
8238+
void AddMicrotasksCompletedCallback(
8239+
MicrotasksCompletedCallbackWithData callback, void* data = nullptr);
82358240

82368241
/**
82378242
* Removes callback that was installed by AddMicrotasksCompletedCallback.
82388243
*/
8239-
void RemoveMicrotasksCompletedCallback(MicrotasksCompletedCallback callback);
8244+
V8_DEPRECATE_SOON("Use *WithData version.",
8245+
void RemoveMicrotasksCompletedCallback(
8246+
MicrotasksCompletedCallback callback));
8247+
void RemoveMicrotasksCompletedCallback(
8248+
MicrotasksCompletedCallbackWithData callback, void* data = nullptr);
82408249

82418250
/**
82428251
* Sets a callback for counting the number of times a feature of V8 is used.

deps/v8/src/api.cc

+14-1
Original file line numberDiff line numberDiff line change
@@ -8574,7 +8574,7 @@ MicrotasksPolicy Isolate::GetMicrotasksPolicy() const {
85748574
namespace {
85758575

85768576
void MicrotasksCompletedCallbackAdapter(v8::Isolate* isolate, void* data) {
8577-
auto callback = reinterpret_cast<MicrotasksCompletedCallback>(data);
8577+
auto callback = reinterpret_cast<void (*)(v8::Isolate*)>(data);
85788578
callback(isolate);
85798579
}
85808580

@@ -8588,6 +8588,13 @@ void Isolate::AddMicrotasksCompletedCallback(
85888588
&MicrotasksCompletedCallbackAdapter, reinterpret_cast<void*>(callback));
85898589
}
85908590

8591+
void Isolate::AddMicrotasksCompletedCallback(
8592+
MicrotasksCompletedCallbackWithData callback, void* data) {
8593+
DCHECK(callback);
8594+
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
8595+
isolate->default_microtask_queue()->AddMicrotasksCompletedCallback(callback,
8596+
data);
8597+
}
85918598

85928599
void Isolate::RemoveMicrotasksCompletedCallback(
85938600
MicrotasksCompletedCallback callback) {
@@ -8596,6 +8603,12 @@ void Isolate::RemoveMicrotasksCompletedCallback(
85968603
&MicrotasksCompletedCallbackAdapter, reinterpret_cast<void*>(callback));
85978604
}
85988605

8606+
void Isolate::RemoveMicrotasksCompletedCallback(
8607+
MicrotasksCompletedCallbackWithData callback, void* data) {
8608+
i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
8609+
isolate->default_microtask_queue()->RemoveMicrotasksCompletedCallback(
8610+
callback, data);
8611+
}
85998612

86008613
void Isolate::SetUseCounterCallback(UseCounterCallback callback) {
86018614
reinterpret_cast<i::Isolate*>(this)->SetUseCounterCallback(callback);

deps/v8/src/inspector/v8-debugger.cc

+9-3
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ class MatchPrototypePredicate : public v8::debug::QueryObjectPredicate {
5959
v8::Local<v8::Context> m_context;
6060
v8::Local<v8::Value> m_prototype;
6161
};
62+
6263
} // namespace
6364

6465
V8Debugger::V8Debugger(v8::Isolate* isolate, V8InspectorImpl* inspector)
@@ -76,7 +77,7 @@ V8Debugger::~V8Debugger() {
7677
m_isolate->RemoveCallCompletedCallback(
7778
&V8Debugger::terminateExecutionCompletedCallback);
7879
m_isolate->RemoveMicrotasksCompletedCallback(
79-
&V8Debugger::terminateExecutionCompletedCallback);
80+
&V8Debugger::terminateExecutionCompletedCallbackIgnoringData);
8081
}
8182

8283
void V8Debugger::enable() {
@@ -302,7 +303,7 @@ void V8Debugger::terminateExecution(
302303
m_isolate->AddCallCompletedCallback(
303304
&V8Debugger::terminateExecutionCompletedCallback);
304305
m_isolate->AddMicrotasksCompletedCallback(
305-
&V8Debugger::terminateExecutionCompletedCallback);
306+
&V8Debugger::terminateExecutionCompletedCallbackIgnoringData);
306307
m_isolate->TerminateExecution();
307308
}
308309

@@ -311,7 +312,7 @@ void V8Debugger::reportTermination() {
311312
m_isolate->RemoveCallCompletedCallback(
312313
&V8Debugger::terminateExecutionCompletedCallback);
313314
m_isolate->RemoveMicrotasksCompletedCallback(
314-
&V8Debugger::terminateExecutionCompletedCallback);
315+
&V8Debugger::terminateExecutionCompletedCallbackIgnoringData);
315316
m_isolate->CancelTerminateExecution();
316317
m_terminateExecutionCallback->sendSuccess();
317318
m_terminateExecutionCallback.reset();
@@ -324,6 +325,11 @@ void V8Debugger::terminateExecutionCompletedCallback(v8::Isolate* isolate) {
324325
debugger->reportTermination();
325326
}
326327

328+
void V8Debugger::terminateExecutionCompletedCallbackIgnoringData(
329+
v8::Isolate* isolate, void*) {
330+
terminateExecutionCompletedCallback(isolate);
331+
}
332+
327333
Response V8Debugger::continueToLocation(
328334
int targetContextGroupId, V8DebuggerScript* script,
329335
std::unique_ptr<protocol::Debugger::Location> location,

deps/v8/src/inspector/v8-debugger.h

+2
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,8 @@ class V8Debugger : public v8::debug::DebugDelegate,
144144
static size_t nearHeapLimitCallback(void* data, size_t current_heap_limit,
145145
size_t initial_heap_limit);
146146
static void terminateExecutionCompletedCallback(v8::Isolate* isolate);
147+
static void terminateExecutionCompletedCallbackIgnoringData(
148+
v8::Isolate* isolate, void*);
147149
void handleProgramBreak(
148150
v8::Local<v8::Context> pausedContext, v8::Local<v8::Value> exception,
149151
const std::vector<v8::debug::BreakpointId>& hitBreakpoints,

deps/v8/src/microtask-queue.h

-2
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,6 @@ class V8_EXPORT_PRIVATE MicrotaskQueue final : public v8::MicrotaskQueue {
8787
}
8888
v8::MicrotasksPolicy microtasks_policy() const { return microtasks_policy_; }
8989

90-
void AddMicrotasksCompletedCallback(MicrotasksCompletedCallback callback);
91-
void RemoveMicrotasksCompletedCallback(MicrotasksCompletedCallback callback);
9290
void FireMicrotasksCompletedCallback(Isolate* isolate) const;
9391

9492
intptr_t capacity() const { return capacity_; }

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

+1-3
Original file line numberDiff line numberDiff line change
@@ -21680,12 +21680,10 @@ TEST(RunMicrotasksIgnoresThrownExceptionsFromApi) {
2168021680

2168121681
uint8_t microtasks_completed_callback_count = 0;
2168221682

21683-
21684-
static void MicrotasksCompletedCallback(v8::Isolate* isolate) {
21683+
static void MicrotasksCompletedCallback(v8::Isolate* isolate, void*) {
2168521684
++microtasks_completed_callback_count;
2168621685
}
2168721686

21688-
2168921687
TEST(SetAutorunMicrotasks) {
2169021688
LocalContext env;
2169121689
v8::HandleScope scope(env->GetIsolate());

0 commit comments

Comments
 (0)