summaryrefslogtreecommitdiffstats
path: root/node_modules/nan/nan_private.h
diff options
context:
space:
mode:
authorGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
committerGravatar Piotr Russ <mail@pruss.it> 2020-11-16 00:10:28 +0100
commite06ec920f7a5d784e674c4c4b4e6d1da3dc7391d (patch)
tree55713f725f77b44ebfec86e4eec3ce33e71458ca /node_modules/nan/nan_private.h
downloadwebsite_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.gz
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.tar.bz2
website_creator-e06ec920f7a5d784e674c4c4b4e6d1da3dc7391d.zip
api, login, auth
Diffstat (limited to 'node_modules/nan/nan_private.h')
-rw-r--r--node_modules/nan/nan_private.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/node_modules/nan/nan_private.h b/node_modules/nan/nan_private.h
new file mode 100644
index 0000000..15f44cc
--- /dev/null
+++ b/node_modules/nan/nan_private.h
@@ -0,0 +1,73 @@
+/*********************************************************************
+ * 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_
+