summaryrefslogtreecommitdiff
path: root/node_modules/nan/nan_define_own_property_helper.h
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/nan/nan_define_own_property_helper.h')
-rw-r--r--node_modules/nan/nan_define_own_property_helper.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/node_modules/nan/nan_define_own_property_helper.h b/node_modules/nan/nan_define_own_property_helper.h
new file mode 100644
index 0000000..d710ef2
--- /dev/null
+++ b/node_modules/nan/nan_define_own_property_helper.h
@@ -0,0 +1,29 @@
+/*********************************************************************
+ * NAN - Native Abstractions for Node.js
+ *
+ * Copyright (c) 2018 NAN contributors
+ *
+ * MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
+ ********************************************************************/
+
+#ifndef NAN_DEFINE_OWN_PROPERTY_HELPER_H_
+#define NAN_DEFINE_OWN_PROPERTY_HELPER_H_
+
+namespace imp {
+
+inline Maybe<bool> DefineOwnPropertyHelper(
+ v8::PropertyAttribute current
+ , v8::Handle<v8::Object> obj
+ , v8::Handle<v8::String> key
+ , v8::Handle<v8::Value> value
+ , v8::PropertyAttribute attribs = v8::None) {
+ return !(current & v8::DontDelete) || // configurable OR
+ (!(current & v8::ReadOnly) && // writable AND
+ !((attribs ^ current) & ~v8::ReadOnly)) // same excluding RO
+ ? Just<bool>(obj->ForceSet(key, value, attribs))
+ : Nothing<bool>();
+}
+
+} // end of namespace imp
+
+#endif // NAN_DEFINE_OWN_PROPERTY_HELPER_H_