Skip to content

Commit dcbbfad

Browse files
authored
handle ObjectTemplate::SetAccessor API change in v8 12.1 (#204)
v8/v8@e48c472
1 parent 388ce0e commit dcbbfad

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

v8pp/module.hpp

+11
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,17 @@ class module
8181
static_assert(!detail::is_callable<Variable>::value, "Variable must not be callable");
8282
v8::HandleScope scope(isolate_);
8383

84+
#if V8_MAJOR_VERSION > 12 || (V8_MAJOR_VERSION == 12 && V8_MINOR_VERSION >= 1)
85+
obj_->SetAccessor(v8pp::to_v8(isolate_, name),
86+
&var_get<Variable>, &var_set<Variable>,
87+
detail::external_data::set(isolate_, &var),
88+
v8::PropertyAttribute(v8::DontDelete));
89+
#else
8490
obj_->SetAccessor(v8pp::to_v8(isolate_, name),
8591
&var_get<Variable>, &var_set<Variable>,
8692
detail::external_data::set(isolate_, &var),
8793
v8::DEFAULT, v8::PropertyAttribute(v8::DontDelete));
94+
#endif
8895
return *this;
8996
}
9097

@@ -107,7 +114,11 @@ class module
107114
v8::AccessorSetterCallback setter = property_type::is_readonly ? nullptr : property_type::template set<Traits>;
108115
v8::Local<v8::String> v8_name = v8pp::to_v8(isolate_, name);
109116
v8::Local<v8::Value> data = detail::external_data::set(isolate_, property_type(std::move(get), std::move(set)));
117+
#if V8_MAJOR_VERSION > 12 || (V8_MAJOR_VERSION == 12 && V8_MINOR_VERSION >= 1)
118+
obj_->SetAccessor(v8_name, getter, setter, data, v8::PropertyAttribute(v8::DontDelete));
119+
#else
110120
obj_->SetAccessor(v8_name, getter, setter, data, v8::DEFAULT, v8::PropertyAttribute(v8::DontDelete));
121+
#endif
111122
return *this;
112123
}
113124

0 commit comments

Comments
 (0)