Skip to content

Commit 4fd7f5b

Browse files
clavinckerr
authored andcommitted
chore: revert v8 removal
https://chromium-review.googlesource.com/c/v8/v8/+/5497515 See patch message for more details.
1 parent ef3dd90 commit 4fd7f5b

2 files changed

Lines changed: 125 additions & 0 deletions

File tree

‎patches/v8/.patches‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ cherry-pick-f320600cd1f4.patch
55
cherry-pick-b3c01ac1e60a.patch
66
cherry-pick-3e037e195e50.patch
77
revert_api_fully_deprecated_wrapperdescriptor.patch
8+
revert_api_cleanup_remove_setaccessor_and_setnativedataproperty.patch
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2+
From: Calvin Watford <cwatford@slack-corp.com>
3+
Date: Thu, 23 May 2024 13:02:49 -0600
4+
Subject: Revert "[api][cleanup] Remove SetAccessor and SetNativeDataProperty"
5+
6+
This reverts commit 5d84c48eb907b8cd6db8f017e0263049de25443d, which
7+
landed in:
8+
https://chromium-review.googlesource.com/c/v8/v8/+/5497515
9+
10+
This change breaks Node.js in complicated ways. We should wait for
11+
Node.js to ingest these changes, incorporate their changes, and then
12+
remove this patch.
13+
14+
diff --git a/include/v8-template.h b/include/v8-template.h
15+
index 7c96a233f1915f527e11d0b9a7bd8ebd5ea4cb89..2f025bf6a9f98bbef4b7566ba6f61259191ed3db 100644
16+
--- a/include/v8-template.h
17+
+++ b/include/v8-template.h
18+
@@ -80,6 +80,27 @@ class V8_EXPORT Template : public Data {
19+
* \param attribute The attributes of the property for which an accessor
20+
* is added.
21+
*/
22+
+ V8_DEPRECATED("Use SetNativeDataProperty without AccessControl instead")
23+
+ void SetNativeDataProperty(
24+
+ Local<String> name, AccessorGetterCallback getter,
25+
+ AccessorSetterCallback setter, Local<Value> data,
26+
+ PropertyAttribute attribute, AccessControl settings,
27+
+ SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
28+
+ SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
29+
+ V8_DEPRECATED("Use SetNativeDataProperty without AccessControl instead")
30+
+ void SetNativeDataProperty(
31+
+ Local<Name> name, AccessorNameGetterCallback getter,
32+
+ AccessorNameSetterCallback setter, Local<Value> data,
33+
+ PropertyAttribute attribute, AccessControl settings,
34+
+ SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
35+
+ SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
36+
+ V8_DEPRECATED("Use SetNativeDataProperty with Local<Name> instead")
37+
+ void SetNativeDataProperty(
38+
+ Local<String> name, AccessorGetterCallback getter,
39+
+ AccessorSetterCallback setter = nullptr,
40+
+ Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
41+
+ SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
42+
+ SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
43+
void SetNativeDataProperty(
44+
Local<Name> name, AccessorNameGetterCallback getter,
45+
AccessorNameSetterCallback setter = nullptr,
46+
@@ -1042,6 +1063,13 @@ class V8_EXPORT ObjectTemplate : public Template {
47+
* \param attribute The attributes of the property for which an accessor
48+
* is added.
49+
*/
50+
+ V8_DEPRECATED("Use SetAccessor with Local<Name> instead")
51+
+ void SetAccessor(
52+
+ Local<String> name, AccessorGetterCallback getter,
53+
+ AccessorSetterCallback setter = nullptr,
54+
+ Local<Value> data = Local<Value>(), PropertyAttribute attribute = None,
55+
+ SideEffectType getter_side_effect_type = SideEffectType::kHasSideEffect,
56+
+ SideEffectType setter_side_effect_type = SideEffectType::kHasSideEffect);
57+
V8_DEPRECATE_SOON("Use SetNativeDataProperty instead")
58+
void SetAccessor(
59+
Local<Name> name, AccessorNameGetterCallback getter,
60+
diff --git a/src/api/api.cc b/src/api/api.cc
61+
index 817fcfdb10f35dbf7175dfcc9daae7ff4fc02e69..8c4de9fa39fd7f288c5810e6ae29de7347bf6619 100644
62+
--- a/src/api/api.cc
63+
+++ b/src/api/api.cc
64+
@@ -1587,6 +1587,41 @@ void TemplateSetAccessor(Template* template_obj, v8::Local<Name> name,
65+
}
66+
} // namespace
67+
68+
+void Template::SetNativeDataProperty(v8::Local<String> name,
69+
+ AccessorGetterCallback getter,
70+
+ AccessorSetterCallback setter,
71+
+ v8::Local<Value> data,
72+
+ PropertyAttribute attribute,
73+
+ v8::AccessControl settings,
74+
+ SideEffectType getter_side_effect_type,
75+
+ SideEffectType setter_side_effect_type) {
76+
+ TemplateSetAccessor(this, name, getter, setter, data, attribute, true, false,
77+
+ getter_side_effect_type, setter_side_effect_type);
78+
+}
79+
+
80+
+void Template::SetNativeDataProperty(v8::Local<Name> name,
81+
+ AccessorNameGetterCallback getter,
82+
+ AccessorNameSetterCallback setter,
83+
+ v8::Local<Value> data,
84+
+ PropertyAttribute attribute,
85+
+ v8::AccessControl settings,
86+
+ SideEffectType getter_side_effect_type,
87+
+ SideEffectType setter_side_effect_type) {
88+
+ TemplateSetAccessor(this, name, getter, setter, data, attribute, true, false,
89+
+ getter_side_effect_type, setter_side_effect_type);
90+
+}
91+
+
92+
+void Template::SetNativeDataProperty(v8::Local<String> name,
93+
+ AccessorGetterCallback getter,
94+
+ AccessorSetterCallback setter,
95+
+ v8::Local<Value> data,
96+
+ PropertyAttribute attribute,
97+
+ SideEffectType getter_side_effect_type,
98+
+ SideEffectType setter_side_effect_type) {
99+
+ TemplateSetAccessor(this, name, getter, setter, data, attribute, true, false,
100+
+ getter_side_effect_type, setter_side_effect_type);
101+
+}
102+
+
103+
void Template::SetNativeDataProperty(v8::Local<Name> name,
104+
AccessorNameGetterCallback getter,
105+
AccessorNameSetterCallback setter,
106+
@@ -1621,6 +1656,18 @@ void Template::SetIntrinsicDataProperty(Local<Name> name, Intrinsic intrinsic,
107+
static_cast<i::PropertyAttributes>(attribute));
108+
}
109+
110+
+void ObjectTemplate::SetAccessor(v8::Local<String> name,
111+
+ AccessorGetterCallback getter,
112+
+ AccessorSetterCallback setter,
113+
+ v8::Local<Value> data,
114+
+ PropertyAttribute attribute,
115+
+ SideEffectType getter_side_effect_type,
116+
+ SideEffectType setter_side_effect_type) {
117+
+ TemplateSetAccessor(this, name, getter, setter, data, attribute,
118+
+ i::v8_flags.disable_old_api_accessors, false,
119+
+ getter_side_effect_type, setter_side_effect_type);
120+
+}
121+
+
122+
void ObjectTemplate::SetAccessor(v8::Local<Name> name,
123+
AccessorNameGetterCallback getter,
124+
AccessorNameSetterCallback setter,

0 commit comments

Comments
 (0)