summaryrefslogtreecommitdiff
path: root/node_modules/nan/nan_persistent_12_inl.h
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-02-25 18:08:27 +0100
committerMinteck <contact@minteck.org>2022-02-25 18:08:27 +0100
commita5c417748112e9d88d9ca522561e338eb9ba9007 (patch)
treeddab6e854fe8b50942a397a0d9fd8330ad662a97 /node_modules/nan/nan_persistent_12_inl.h
downloadargon-cdn-a5c417748112e9d88d9ca522561e338eb9ba9007.tar.gz
argon-cdn-a5c417748112e9d88d9ca522561e338eb9ba9007.tar.bz2
argon-cdn-a5c417748112e9d88d9ca522561e338eb9ba9007.zip
Initial commit
Diffstat (limited to 'node_modules/nan/nan_persistent_12_inl.h')
-rw-r--r--node_modules/nan/nan_persistent_12_inl.h132
1 files changed, 132 insertions, 0 deletions
diff --git a/node_modules/nan/nan_persistent_12_inl.h b/node_modules/nan/nan_persistent_12_inl.h
new file mode 100644
index 0000000..d9649e8
--- /dev/null
+++ b/node_modules/nan/nan_persistent_12_inl.h
@@ -0,0 +1,132 @@
+/*********************************************************************
+ * NAN - Native Abstractions for Node.js
+ *
+ * Copyright (c) 2018 NAN contributors
+ *
+ * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
+ ********************************************************************/
+
+#ifndef NAN_PERSISTENT_12_INL_H_
+#define NAN_PERSISTENT_12_INL_H_
+
+template<typename T, typename M> class Persistent :
+ public v8::Persistent<T, M> {
+ public:
+ inline Persistent() : v8::Persistent<T, M>() {}
+
+ template<typename S> inline Persistent(v8::Local<S> that) :
+ v8::Persistent<T, M>(v8::Isolate::GetCurrent(), that) {}
+
+ template<typename S, typename M2>
+ inline
+ Persistent(const v8::Persistent<S, M2> &that) : // NOLINT(runtime/explicit)
+ v8::Persistent<T, M2>(v8::Isolate::GetCurrent(), that) {}
+
+ inline void Reset() { v8::PersistentBase<T>::Reset(); }
+
+ template <typename S>
+ inline void Reset(const v8::Local<S> &other) {
+ v8::PersistentBase<T>::Reset(v8::Isolate::GetCurrent(), other);
+ }
+
+ template <typename S>
+ inline void Reset(const v8::PersistentBase<S> &other) {
+ v8::PersistentBase<T>::Reset(v8::Isolate::GetCurrent(), other);
+ }
+
+ template<typename P>
+ inline void SetWeak(
+ P *parameter
+ , typename WeakCallbackInfo<P>::Callback callback
+ , WeakCallbackType type);
+
+ private:
+ inline T *operator*() const { return *PersistentBase<T>::persistent; }
+
+ template<typename S, typename M2>
+ inline void Copy(const Persistent<S, M2> &that) {
+ TYPE_CHECK(T, S);
+
+ this->Reset();
+
+ if (!that.IsEmpty()) {
+ this->Reset(that);
+ M::Copy(that, this);
+ }
+ }
+};
+
+#if defined(V8_MAJOR_VERSION) && (V8_MAJOR_VERSION > 4 || \
+ (V8_MAJOR_VERSION == 4 && defined(V8_MINOR_VERSION) && V8_MINOR_VERSION >= 3))
+template<typename T>
+class Global : public v8::Global<T> {
+ public:
+ inline Global() : v8::Global<T>() {}
+
+ template<typename S> inline Global(v8::Local<S> that) :
+ v8::Global<T>(v8::Isolate::GetCurrent(), that) {}
+
+ template<typename S>
+ inline
+ Global(const v8::PersistentBase<S> &that) : // NOLINT(runtime/explicit)
+ v8::Global<S>(v8::Isolate::GetCurrent(), that) {}
+
+ inline void Reset() { v8::PersistentBase<T>::Reset(); }
+
+ template <typename S>
+ inline void Reset(const v8::Local<S> &other) {
+ v8::PersistentBase<T>::Reset(v8::Isolate::GetCurrent(), other);
+ }
+
+ template <typename S>
+ inline void Reset(const v8::PersistentBase<S> &other) {
+ v8::PersistentBase<T>::Reset(v8::Isolate::GetCurrent(), other);
+ }
+
+ template<typename P>
+ inline void SetWeak(
+ P *parameter
+ , typename WeakCallbackInfo<P>::Callback callback
+ , WeakCallbackType type) {
+ reinterpret_cast<Persistent<T>*>(this)->SetWeak(
+ parameter, callback, type);
+ }
+};
+#else
+template<typename T>
+class Global : public v8::UniquePersistent<T> {
+ public:
+ inline Global() : v8::UniquePersistent<T>() {}
+
+ template<typename S> inline Global(v8::Local<S> that) :
+ v8::UniquePersistent<T>(v8::Isolate::GetCurrent(), that) {}
+
+ template<typename S>
+ inline
+ Global(const v8::PersistentBase<S> &that) : // NOLINT(runtime/explicit)
+ v8::UniquePersistent<S>(v8::Isolate::GetCurrent(), that) {}
+
+ inline void Reset() { v8::PersistentBase<T>::Reset(); }
+
+ template <typename S>
+ inline void Reset(const v8::Local<S> &other) {
+ v8::PersistentBase<T>::Reset(v8::Isolate::GetCurrent(), other);
+ }
+
+ template <typename S>
+ inline void Reset(const v8::PersistentBase<S> &other) {
+ v8::PersistentBase<T>::Reset(v8::Isolate::GetCurrent(), other);
+ }
+
+ template<typename P>
+ inline void SetWeak(
+ P *parameter
+ , typename WeakCallbackInfo<P>::Callback callback
+ , WeakCallbackType type) {
+ reinterpret_cast<Persistent<T>*>(this)->SetWeak(
+ parameter, callback, type);
+ }
+};
+#endif
+
+#endif // NAN_PERSISTENT_12_INL_H_