build: remove deps_add_v8_object_setinternalfieldfornodecore.patch (#46992)
chore: remove deps_add_v8_object_setinternalfieldfornodecore.patch This was a Node 20-specific workaround that's no longer needed in Node 22. Xref: https://github.com/nodejs/node/pull/49874.
This commit is contained in:
parent
153dae5b48
commit
24f1f7ed57
2 changed files with 0 additions and 88 deletions
|
|
@ -1,2 +1 @@
|
||||||
chore_allow_customizing_microtask_policy_per_context.patch
|
chore_allow_customizing_microtask_policy_per_context.patch
|
||||||
deps_add_v8_object_setinternalfieldfornodecore.patch
|
|
||||||
|
|
|
||||||
|
|
@ -1,87 +0,0 @@
|
||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Shelley Vohr <shelley.vohr@gmail.com>
|
|
||||||
Date: Tue, 14 Nov 2023 17:48:11 +0100
|
|
||||||
Subject: deps: add v8::Object::SetInternalFieldForNodeCore()
|
|
||||||
|
|
||||||
This is a non-ABI breaking solution added by Node.js in v20.x for:
|
|
||||||
|
|
||||||
* https://chromium-review.googlesource.com/c/v8/v8/+/4827307
|
|
||||||
* https://chromium-review.googlesource.com/c/v8/v8/+/4707972
|
|
||||||
|
|
||||||
which are necessary for backporting the vm-related memory fixes in https://github.com/nodejs/node/pull/48510.
|
|
||||||
|
|
||||||
diff --git a/include/v8-object.h b/include/v8-object.h
|
|
||||||
index 3e57ae8efe33f326ef0e5d609c311d4be5b8afd6..dc521d39c2280dfc3217e97c1e413b2be9b4f7ff 100644
|
|
||||||
--- a/include/v8-object.h
|
|
||||||
+++ b/include/v8-object.h
|
|
||||||
@@ -22,6 +22,8 @@ class Function;
|
|
||||||
class FunctionTemplate;
|
|
||||||
template <typename T>
|
|
||||||
class PropertyCallbackInfo;
|
|
||||||
+class Module;
|
|
||||||
+class UnboundScript;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A private symbol
|
|
||||||
@@ -532,6 +534,21 @@ class V8_EXPORT Object : public Value {
|
|
||||||
index);
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /**
|
|
||||||
+ * Warning: These are Node.js-specific extentions used to avoid breaking
|
|
||||||
+ * changes in Node.js v20.x. They do not exist in V8 upstream and will
|
|
||||||
+ * not exist in Node.js v21.x. Node.js embedders and addon authors should
|
|
||||||
+ * not use them from v20.x.
|
|
||||||
+ */
|
|
||||||
+#ifndef NODE_WANT_INTERNALS
|
|
||||||
+ V8_DEPRECATED("This extention should only be used by Node.js core")
|
|
||||||
+#endif
|
|
||||||
+ void SetInternalFieldForNodeCore(int index, Local<Module> value);
|
|
||||||
+#ifndef NODE_WANT_INTERNALS
|
|
||||||
+ V8_DEPRECATED("This extention should only be used by Node.js core")
|
|
||||||
+#endif
|
|
||||||
+ void SetInternalFieldForNodeCore(int index, Local<UnboundScript> value);
|
|
||||||
+
|
|
||||||
/** Same as above, but works for TracedReference. */
|
|
||||||
V8_INLINE static void* GetAlignedPointerFromInternalField(
|
|
||||||
const BasicTracedReference<Object>& object, int index) {
|
|
||||||
diff --git a/src/api/api.cc b/src/api/api.cc
|
|
||||||
index 62a71b9cb7594e5fcc86f32d7af160c32b8e8944..0b2d5bfa9480ea90eb0adb89132505b8cabafc08 100644
|
|
||||||
--- a/src/api/api.cc
|
|
||||||
+++ b/src/api/api.cc
|
|
||||||
@@ -6313,14 +6313,33 @@ Local<Data> v8::Object::SlowGetInternalField(int index) {
|
|
||||||
i::Cast<i::JSObject>(*obj)->GetEmbedderField(index), isolate));
|
|
||||||
}
|
|
||||||
|
|
||||||
-void v8::Object::SetInternalField(int index, v8::Local<Data> value) {
|
|
||||||
- auto obj = Utils::OpenDirectHandle(this);
|
|
||||||
+template<typename T>
|
|
||||||
+void SetInternalFieldImpl(v8::Object* receiver, int index, v8::Local<T> value) {
|
|
||||||
+ auto obj = Utils::OpenDirectHandle(receiver);
|
|
||||||
const char* location = "v8::Object::SetInternalField()";
|
|
||||||
if (!InternalFieldOK(obj, index, location)) return;
|
|
||||||
auto val = Utils::OpenDirectHandle(*value);
|
|
||||||
i::Cast<i::JSObject>(obj)->SetEmbedderField(index, *val);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void v8::Object::SetInternalField(int index, v8::Local<Data> value) {
|
|
||||||
+ SetInternalFieldImpl(this, index, value);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/**
|
|
||||||
+ * These are Node.js-specific extentions used to avoid breaking changes in
|
|
||||||
+ * Node.js v20.x.
|
|
||||||
+ */
|
|
||||||
+void v8::Object::SetInternalFieldForNodeCore(int index,
|
|
||||||
+ v8::Local<Module> value) {
|
|
||||||
+ SetInternalFieldImpl(this, index, value);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void v8::Object::SetInternalFieldForNodeCore(int index,
|
|
||||||
+ v8::Local<UnboundScript> value) {
|
|
||||||
+ SetInternalFieldImpl(this, index, value);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void* v8::Object::SlowGetAlignedPointerFromInternalField(v8::Isolate* isolate,
|
|
||||||
int index) {
|
|
||||||
auto obj = Utils::OpenDirectHandle(this);
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue