You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
1.0 KiB
29 lines
1.0 KiB
/********************************************************************* |
|
* 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_
|
|
|