Skip to content

Commit 7f9ceb8

Browse files
VerteDindekkoopa
authored andcommitted
chore: overload deprecated AccessorSignatures
1 parent 6c1574a commit 7f9ceb8

File tree

2 files changed

+51
-6
lines changed

2 files changed

+51
-6
lines changed

nan.h

Lines changed: 48 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
25122559
inline 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

nan_callbacks.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@ typedef void(*IndexQueryCallback)(
5252
const PropertyCallbackInfo<v8::Integer>&);
5353

5454
namespace imp {
55-
typedef v8::Local<v8::AccessorSignature> Sig;
55+
#if (NODE_MODULE_VERSION < NODE_18_0_MODULE_VERSION)
56+
NAN_DEPRECATED typedef v8::Local<v8::AccessorSignature> Sig;
57+
#endif
5658

5759
static const int kDataIndex = 0;
5860

0 commit comments

Comments
 (0)