diff --git a/patches/node/api_promote_deprecation_of_v8_context_and_v8_object_api_methods.patch b/patches/node/api_promote_deprecation_of_v8_context_and_v8_object_api_methods.patch index dfa4403289..6db989a4b2 100644 --- a/patches/node/api_promote_deprecation_of_v8_context_and_v8_object_api_methods.patch +++ b/patches/node/api_promote_deprecation_of_v8_context_and_v8_object_api_methods.patch @@ -43,6 +43,20 @@ index 37d83e41b618a07aca98118260abe9618f11256d..26d5c1bd3c8191fce1d22b969996b6bf } template +diff --git a/src/base_object.cc b/src/base_object.cc +index 404e2aa8c88d0cc0e6717c01e0df68899c64cc32..16462f305a2ac6b6c3d7b85024f2e52648c4300c 100644 +--- a/src/base_object.cc ++++ b/src/base_object.cc +@@ -45,7 +45,8 @@ BaseObject::~BaseObject() { + + { + HandleScope handle_scope(realm()->isolate()); +- object()->SetAlignedPointerInInternalField(BaseObject::kSlot, nullptr); ++ object()->SetAlignedPointerInInternalField( ++ BaseObject::kSlot, nullptr, v8::kEmbedderDataTypeTagDefault); + } + } + diff --git a/src/env-inl.h b/src/env-inl.h index 97c43afb487b58c0c77bd59b4a6b6d7a13690053..23a4d7b651935a4029249fb2f1dd3ed46ea3b26f 100644 --- a/src/env-inl.h @@ -57,6 +71,22 @@ index 97c43afb487b58c0c77bd59b4a6b6d7a13690053..23a4d7b651935a4029249fb2f1dd3ed4 } inline Environment* Environment::GetCurrent( +diff --git a/src/js_udp_wrap.cc b/src/js_udp_wrap.cc +index 51e4f8c45ffd38fcf925ab8d283b3b88f2a35832..0c30c8b4609e4870c0ccfc5e9e465248c20763b8 100644 +--- a/src/js_udp_wrap.cc ++++ b/src/js_udp_wrap.cc +@@ -55,8 +55,9 @@ JSUDPWrap::JSUDPWrap(Environment* env, Local obj) + : AsyncWrap(env, obj, PROVIDER_JSUDPWRAP) { + MakeWeak(); + +- obj->SetAlignedPointerInInternalField( +- kUDPWrapBaseField, static_cast(this)); ++ obj->SetAlignedPointerInInternalField(kUDPWrapBaseField, ++ static_cast(this), ++ v8::kEmbedderDataTypeTagDefault); + } + + int JSUDPWrap::RecvStart() { diff --git a/src/node_context_data.h b/src/node_context_data.h index d81c75daaae47b8b0b489cf357a32e437e7a6cf7..b0aab2f7b2538b6e2cacc9ffd52473b7b4ffff38 100644 --- a/src/node_context_data.h @@ -103,6 +133,21 @@ index cb13d84388bcc6806d3b038a51e1cc2d1feccda1..687b2cf3e63b2a3306e2cbac67e3e216 persistent().Reset(v8::Isolate::GetCurrent(), handle); MakeWeak(); } +diff --git a/src/node_process_methods.cc b/src/node_process_methods.cc +index fe4aad63bc877be105830a80aa6be10ce3f8fda4..588b1fef718853bec95a4e4a3b14809a0e7018ea 100644 +--- a/src/node_process_methods.cc ++++ b/src/node_process_methods.cc +@@ -672,8 +672,8 @@ void BindingData::RegisterExternalReferences( + + BindingData* BindingData::FromV8Value(Local value) { + Local v8_object = value.As(); +- return static_cast( +- v8_object->GetAlignedPointerFromInternalField(BaseObject::kSlot)); ++ return static_cast(v8_object->GetAlignedPointerFromInternalField( ++ BaseObject::kSlot, v8::kEmbedderDataTypeTagDefault)); + } + + void BindingData::MemoryInfo(MemoryTracker* tracker) const { diff --git a/src/node_realm-inl.h b/src/node_realm-inl.h index f162d1506c990a5fe578be6f1324427e3f9023f4..b57bb0b42e98b954c0c8662c667e589d6c68a5d3 100644 --- a/src/node_realm-inl.h @@ -117,3 +162,118 @@ index f162d1506c990a5fe578be6f1324427e3f9023f4..b57bb0b42e98b954c0c8662c667e589d } inline Realm* Realm::GetCurrent( +diff --git a/src/node_snapshotable.cc b/src/node_snapshotable.cc +index e34d24d51d5c090b560d06f727043f20924e6f46..07615933c858a17515836a29f7e27ace4b81e6ff 100644 +--- a/src/node_snapshotable.cc ++++ b/src/node_snapshotable.cc +@@ -1400,7 +1400,8 @@ StartupData SerializeNodeContextInternalFields(Local holder, + // For the moment we do not set any internal fields in ArrayBuffer + // or ArrayBufferViews, so just return nullptr. + if (holder->IsArrayBuffer() || holder->IsArrayBufferView()) { +- CHECK_NULL(holder->GetAlignedPointerFromInternalField(index)); ++ CHECK_NULL(holder->GetAlignedPointerFromInternalField( ++ index, v8::kEmbedderDataTypeTagDefault)); + return StartupData{nullptr, 0}; + } + +@@ -1420,7 +1421,8 @@ StartupData SerializeNodeContextInternalFields(Local holder, + *holder); + + BaseObject* object_ptr = static_cast( +- holder->GetAlignedPointerFromInternalField(BaseObject::kSlot)); ++ holder->GetAlignedPointerFromInternalField( ++ BaseObject::kSlot, v8::kEmbedderDataTypeTagDefault)); + // If the native object is already set to null, ignore it. + if (object_ptr == nullptr) { + return StartupData{nullptr, 0}; +diff --git a/src/stream_base-inl.h b/src/stream_base-inl.h +index 29a4c29f3d3822394d23c453899cdd6aae280f3f..2a953d6390d5e4e251e54c1e847d4e5e25785065 100644 +--- a/src/stream_base-inl.h ++++ b/src/stream_base-inl.h +@@ -19,22 +19,22 @@ StreamReq::StreamReq( + + void StreamReq::AttachToObject(v8::Local req_wrap_obj) { + CHECK_EQ(req_wrap_obj->GetAlignedPointerFromInternalField( +- StreamReq::kStreamReqField), ++ StreamReq::kStreamReqField, v8::kEmbedderDataTypeTagDefault), + nullptr); + req_wrap_obj->SetAlignedPointerInInternalField( +- StreamReq::kStreamReqField, this); ++ StreamReq::kStreamReqField, this, v8::kEmbedderDataTypeTagDefault); + } + + StreamReq* StreamReq::FromObject(v8::Local req_wrap_obj) { + return static_cast( + req_wrap_obj->GetAlignedPointerFromInternalField( +- StreamReq::kStreamReqField)); ++ StreamReq::kStreamReqField, v8::kEmbedderDataTypeTagDefault)); + } + + void StreamReq::Dispose() { + BaseObjectPtr destroy_me{GetAsyncWrap()}; + object()->SetAlignedPointerInInternalField( +- StreamReq::kStreamReqField, nullptr); ++ StreamReq::kStreamReqField, nullptr, v8::kEmbedderDataTypeTagDefault); + destroy_me->Detach(); + } + +@@ -120,16 +120,17 @@ SimpleWriteWrap::SimpleWriteWrap( + + void StreamBase::AttachToObject(v8::Local obj) { + obj->SetAlignedPointerInInternalField( +- StreamBase::kStreamBaseField, this); ++ StreamBase::kStreamBaseField, this, v8::kEmbedderDataTypeTagDefault); + } + + StreamBase* StreamBase::FromObject(v8::Local obj) { +- if (obj->GetAlignedPointerFromInternalField(StreamBase::kSlot) == nullptr) ++ if (obj->GetAlignedPointerFromInternalField( ++ StreamBase::kSlot, v8::kEmbedderDataTypeTagDefault) == nullptr) + return nullptr; + + return static_cast( + obj->GetAlignedPointerFromInternalField( +- StreamBase::kStreamBaseField)); ++ StreamBase::kStreamBaseField, v8::kEmbedderDataTypeTagDefault)); + } + + WriteWrap* WriteWrap::FromObject(v8::Local req_wrap_obj) { +@@ -162,8 +163,10 @@ void WriteWrap::SetBackingStore(std::unique_ptr bs) { + void StreamReq::ResetObject(v8::Local obj) { + DCHECK_GT(obj->InternalFieldCount(), StreamReq::kStreamReqField); + +- obj->SetAlignedPointerInInternalField(StreamReq::kSlot, nullptr); +- obj->SetAlignedPointerInInternalField(StreamReq::kStreamReqField, nullptr); ++ obj->SetAlignedPointerInInternalField( ++ StreamReq::kSlot, nullptr, v8::kEmbedderDataTypeTagDefault); ++ obj->SetAlignedPointerInInternalField( ++ StreamReq::kStreamReqField, nullptr, v8::kEmbedderDataTypeTagDefault); + } + + } // namespace node +diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc +index 150ef0f0400bed9df4f4b1a4c20ec4045ef7a5f6..2ca2ac177c6b5edc3b40712a40ff4a36e96904dc 100644 +--- a/src/udp_wrap.cc ++++ b/src/udp_wrap.cc +@@ -126,8 +126,8 @@ void UDPWrapBase::set_listener(UDPListener* listener) { + + UDPWrapBase* UDPWrapBase::FromObject(Local obj) { + CHECK_GT(obj->InternalFieldCount(), UDPWrapBase::kUDPWrapBaseField); +- return static_cast( +- obj->GetAlignedPointerFromInternalField(UDPWrapBase::kUDPWrapBaseField)); ++ return static_cast(obj->GetAlignedPointerFromInternalField( ++ UDPWrapBase::kUDPWrapBaseField, v8::kEmbedderDataTypeTagDefault)); + } + + void UDPWrapBase::AddMethods(Environment* env, Local t) { +@@ -147,7 +147,9 @@ UDPWrap::UDPWrap(Environment* env, Local object) + reinterpret_cast(&handle_), + AsyncWrap::PROVIDER_UDPWRAP) { + object->SetAlignedPointerInInternalField( +- UDPWrapBase::kUDPWrapBaseField, static_cast(this)); ++ UDPWrapBase::kUDPWrapBaseField, ++ static_cast(this), ++ v8::kEmbedderDataTypeTagDefault); + + int r = uv_udp_init(env->event_loop(), &handle_); + CHECK_EQ(r, 0); // can't fail anyway