MCPcopy Create free account
hub / github.com/nodejs/nan / SetAccessor

Function SetAccessor

nan.h:2644–2684  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2642enum AccessControl {DEFAULT = 0};
2643
2644inline void SetAccessor(
2645 v8::Local<v8::ObjectTemplate> tpl
2646 , v8::Local<v8::String> name
2647 , GetterCallback getter
2648 , SetterCallback setter = 0
2649 , v8::Local<v8::Value> data = v8::Local<v8::Value>()
2650 , enum AccessControl settings = DEFAULT
2651 , v8::PropertyAttribute attribute = v8::None) {
2652 HandleScope scope;
2653
2654 imp::NativeGetter getter_ =
2655 imp::GetterCallbackWrapper;
2656 imp::NativeSetter setter_ =
2657 setter ? imp::SetterCallbackWrapper : 0;
2658
2659 v8::Local<v8::ObjectTemplate> otpl = New<v8::ObjectTemplate>();
2660 otpl->SetInternalFieldCount(imp::kAccessorFieldCount);
2661 v8::Local<v8::Object> obj = NewInstance(otpl).ToLocalChecked();
2662
2663 obj->SetInternalField(
2664 imp::kGetterIndex
2665 , New<v8::External>(reinterpret_cast<void *>(getter)));
2666
2667 if (setter != 0) {
2668 obj->SetInternalField(
2669 imp::kSetterIndex
2670 , New<v8::External>(reinterpret_cast<void *>(setter)));
2671 }
2672
2673 if (!data.IsEmpty()) {
2674 obj->SetInternalField(imp::kDataIndex, data);
2675 }
2676
2677 tpl->SetNativeDataProperty(
2678 name
2679 , getter_
2680 , setter_
2681 , obj
2682 , attribute
2683 );
2684}
2685
2686inline bool SetAccessor(
2687 v8::Local<v8::Object> obj

Callers 3

NAN_MODULE_INITFunction · 0.85
NAN_MODULE_INITFunction · 0.85
NewInstanceMethod · 0.85

Calls 5

GetCurrentContextFunction · 0.85
ToLocalCheckedMethod · 0.80
NewInstanceFunction · 0.70
IsEmptyMethod · 0.45
FromMaybeMethod · 0.45

Tested by

no test coverage detected