@@ -2509,15 +2509,61 @@ inline void SetPrototypeMethod(
25092509
25102510// === Accessors and Such =======================================================
25112511
2512+ NAN_DEPRECATED inline void SetAccessor (
2513+ v8::Local<v8::ObjectTemplate> tpl
2514+ , v8::Local<v8::String> name
2515+ , GetterCallback getter
2516+ , SetterCallback setter
2517+ , v8::Local<v8::Value> data
2518+ , v8::AccessControl settings
2519+ , v8::PropertyAttribute attribute
2520+ , imp::Sig signature) {
2521+ HandleScope scope;
2522+
2523+ imp::NativeGetter getter_ =
2524+ imp::GetterCallbackWrapper;
2525+ imp::NativeSetter setter_ =
2526+ setter ? imp::SetterCallbackWrapper : 0 ;
2527+
2528+ v8::Local<v8::ObjectTemplate> otpl = New<v8::ObjectTemplate>();
2529+ otpl->SetInternalFieldCount (imp::kAccessorFieldCount );
2530+ v8::Local<v8::Object> obj = NewInstance (otpl).ToLocalChecked ();
2531+
2532+ obj->SetInternalField (
2533+ imp::kGetterIndex
2534+ , New<v8::External>(reinterpret_cast <void *>(getter)));
2535+
2536+ if (setter != 0 ) {
2537+ obj->SetInternalField (
2538+ imp::kSetterIndex
2539+ , New<v8::External>(reinterpret_cast <void *>(setter)));
2540+ }
2541+
2542+ if (!data.IsEmpty ()) {
2543+ obj->SetInternalField (imp::kDataIndex , data);
2544+ }
2545+
2546+ tpl->SetAccessor (
2547+ name
2548+ , getter_
2549+ , setter_
2550+ , obj
2551+ , settings
2552+ , attribute
2553+ #if (NODE_MODULE_VERSION < NODE_18_0_MODULE_VERSION)
2554+ , signature
2555+ #endif
2556+ );
2557+ }
2558+
25122559inline void SetAccessor (
25132560 v8::Local<v8::ObjectTemplate> tpl
25142561 , v8::Local<v8::String> name
25152562 , GetterCallback getter
25162563 , SetterCallback setter = 0
25172564 , v8::Local<v8::Value> data = v8::Local<v8::Value>()
25182565 , v8::AccessControl settings = v8::DEFAULT
2519- , v8::PropertyAttribute attribute = v8::None
2520- , imp::Sig signature = imp::Sig()) {
2566+ , v8::PropertyAttribute attribute = v8::None) {
25212567 HandleScope scope;
25222568
25232569 imp::NativeGetter getter_ =
@@ -2550,9 +2596,6 @@ inline void SetAccessor(
25502596 , obj
25512597 , settings
25522598 , attribute
2553- #if (NODE_MODULE_VERSION < NODE_18_0_MODULE_VERSION)
2554- , signature
2555- #endif
25562599 );
25572600}
25582601
0 commit comments