From 5bd7871d765316edbebdea7eab00d9f3d37c0e97 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 6 Sep 2023 15:03:35 +0200 Subject: [PATCH 1/2] vm: use v8::DeserializeInternalFieldsCallback explicitly To avoid ambiguity in the signature. --- src/node_contextify.cc | 27 +++++++++++++++------------ test/cctest/test_environment.cc | 7 ++++++- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/src/node_contextify.cc b/src/node_contextify.cc index 85cdd4b3e74163..23b87657cee1bb 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -208,21 +208,24 @@ MaybeLocal ContextifyContext::CreateV8Context( Local ctx; if (snapshot_data == nullptr) { - ctx = Context::New(isolate, - nullptr, // extensions - object_template, - {}, // global object - {}, // deserialization callback - queue); + ctx = Context::New( + isolate, + nullptr, // extensions + object_template, + {}, // global object + v8::DeserializeInternalFieldsCallback(), // deserialization callback + queue); if (ctx.IsEmpty() || InitializeBaseContextForSnapshot(ctx).IsNothing()) { return MaybeLocal(); } - } else if (!Context::FromSnapshot(isolate, - SnapshotData::kNodeVMContextIndex, - {}, // deserialization callback - nullptr, // extensions - {}, // global object - queue) + } else if (!Context::FromSnapshot( + isolate, + SnapshotData::kNodeVMContextIndex, + v8::DeserializeInternalFieldsCallback(), // deserialization + // callback + nullptr, // extensions + {}, // global object + queue) .ToLocal(&ctx)) { return MaybeLocal(); } diff --git a/test/cctest/test_environment.cc b/test/cctest/test_environment.cc index 2e747c7be58922..b3f588c7365305 100644 --- a/test/cctest/test_environment.cc +++ b/test/cctest/test_environment.cc @@ -687,7 +687,12 @@ TEST_F(EnvironmentTest, NestedMicrotaskQueue) { std::unique_ptr queue = v8::MicrotaskQueue::New( isolate_, v8::MicrotasksPolicy::kExplicit); v8::Local context = v8::Context::New( - isolate_, nullptr, {}, {}, {}, queue.get()); + isolate_, + nullptr, + {}, + {}, + v8::DeserializeInternalFieldsCallback(), + queue.get()); node::InitializeContext(context); v8::Context::Scope context_scope(context); From 49a297c4baaf1e9b2a0917424b86c2bc82cd1d57 Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Tue, 12 Dec 2023 17:54:48 +0100 Subject: [PATCH 2/2] fixup! vm: use v8::DeserializeInternalFieldsCallback explicitly --- test/cctest/test_environment.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/cctest/test_environment.cc b/test/cctest/test_environment.cc index b3f588c7365305..9b812408154287 100644 --- a/test/cctest/test_environment.cc +++ b/test/cctest/test_environment.cc @@ -686,13 +686,13 @@ TEST_F(EnvironmentTest, NestedMicrotaskQueue) { std::unique_ptr queue = v8::MicrotaskQueue::New( isolate_, v8::MicrotasksPolicy::kExplicit); - v8::Local context = v8::Context::New( - isolate_, - nullptr, - {}, - {}, - v8::DeserializeInternalFieldsCallback(), - queue.get()); + v8::Local context = + v8::Context::New(isolate_, + nullptr, + {}, + {}, + v8::DeserializeInternalFieldsCallback(), + queue.get()); node::InitializeContext(context); v8::Context::Scope context_scope(context);