| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 | 
							- /*********************************************************************
 
-  * NAN - Native Abstractions for Node.js
 
-  *
 
-  * Copyright (c) 2018 NAN contributors
 
-  *
 
-  * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
 
-  ********************************************************************/
 
- #ifndef NAN_PRIVATE_H_
 
- #define NAN_PRIVATE_H_
 
- inline Maybe<bool>
 
- HasPrivate(v8::Local<v8::Object> object, v8::Local<v8::String> key) {
 
-   HandleScope scope;
 
- #if NODE_MODULE_VERSION >= NODE_6_0_MODULE_VERSION
 
-   v8::Isolate *isolate = v8::Isolate::GetCurrent();
 
-   v8::Local<v8::Context> context = isolate->GetCurrentContext();
 
-   v8::Local<v8::Private> private_key = v8::Private::ForApi(isolate, key);
 
-   return object->HasPrivate(context, private_key);
 
- #else
 
-   return Just(!object->GetHiddenValue(key).IsEmpty());
 
- #endif
 
- }
 
- inline MaybeLocal<v8::Value>
 
- GetPrivate(v8::Local<v8::Object> object, v8::Local<v8::String> key) {
 
- #if NODE_MODULE_VERSION >= NODE_6_0_MODULE_VERSION
 
-   v8::Isolate *isolate = v8::Isolate::GetCurrent();
 
-   v8::EscapableHandleScope scope(isolate);
 
-   v8::Local<v8::Context> context = isolate->GetCurrentContext();
 
-   v8::Local<v8::Private> private_key = v8::Private::ForApi(isolate, key);
 
-   v8::MaybeLocal<v8::Value> v = object->GetPrivate(context, private_key);
 
-   return scope.Escape(v.ToLocalChecked());
 
- #else
 
-   EscapableHandleScope scope;
 
-   v8::Local<v8::Value> v = object->GetHiddenValue(key);
 
-   if (v.IsEmpty()) {
 
-     v = Undefined();
 
-   }
 
-   return scope.Escape(v);
 
- #endif
 
- }
 
- inline Maybe<bool> SetPrivate(
 
-     v8::Local<v8::Object> object,
 
-     v8::Local<v8::String> key,
 
-     v8::Local<v8::Value> value) {
 
- #if NODE_MODULE_VERSION >= NODE_6_0_MODULE_VERSION
 
-   HandleScope scope;
 
-   v8::Isolate *isolate = v8::Isolate::GetCurrent();
 
-   v8::Local<v8::Context> context = isolate->GetCurrentContext();
 
-   v8::Local<v8::Private> private_key = v8::Private::ForApi(isolate, key);
 
-   return object->SetPrivate(context, private_key, value);
 
- #else
 
-   return Just(object->SetHiddenValue(key, value));
 
- #endif
 
- }
 
- inline Maybe<bool> DeletePrivate(
 
-     v8::Local<v8::Object> object,
 
-     v8::Local<v8::String> key) {
 
- #if NODE_MODULE_VERSION >= NODE_6_0_MODULE_VERSION
 
-   HandleScope scope;
 
-   v8::Isolate *isolate = v8::Isolate::GetCurrent();
 
-   v8::Local<v8::Private> private_key = v8::Private::ForApi(isolate, key);
 
-   return object->DeletePrivate(isolate->GetCurrentContext(), private_key);
 
- #else
 
-   return Just(object->DeleteHiddenValue(key));
 
- #endif
 
- }
 
- #endif  // NAN_PRIVATE_H_
 
 
  |