123456789101112131415161718192021222324252627282930 |
- /*********************************************************************
- * 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_
|