Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index ca8c0347ffe720b829b8fb386fdd5145b7cc2190..45f52f9e6a98aa90b3fdf0a73b1f99b606e88384 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -456,7 +456,6 @@ class WeakCallbackInfo { |
void* embedder_fields_[kEmbedderFieldsInWeakCallback]; |
}; |
- |
// kParameter will pass a void* parameter back to the callback, kInternalFields |
// will pass the first two internal fields back to the callback, kFinalizer |
// will pass a void* parameter back, but is invoked before the object is |
@@ -2990,6 +2989,13 @@ enum class IndexFilter { kIncludeIndices, kSkipIndices }; |
enum class IntegrityLevel { kFrozen, kSealed }; |
/** |
+ * kDontSkip is the default behaviour and triggers the definer |
+ * interceptor when setting an own property on an object using |
+ * DefineProperty. kSkip bypasses the interceptors. |
+ */ |
+enum class CallInterceptors { kSkip, kDontSkip }; |
+ |
+/** |
* A JavaScript object (ECMA-262, 4.3.3) |
*/ |
class V8_EXPORT Object : public Value { |
@@ -3026,7 +3032,8 @@ class V8_EXPORT Object : public Value { |
// Returns true on success. |
V8_WARN_UNUSED_RESULT Maybe<bool> DefineOwnProperty( |
Local<Context> context, Local<Name> key, Local<Value> value, |
- PropertyAttribute attributes = None); |
+ PropertyAttribute attributes = None, |
+ CallInterceptors call_interceptors = CallInterceptors::kDontSkip); |
// Implements Object.DefineProperty(O, P, Attributes), see Ecma-262 19.1.2.4. |
// |
@@ -3040,9 +3047,13 @@ class V8_EXPORT Object : public Value { |
// |
// The PropertyDescriptor can change when redefining a property. |
// |
+ // CallInterceptors call_interceptors = kSkip |
+ // bypasses interceptors when setting property on an object. |
+ // |
// Returns true on success. |
V8_WARN_UNUSED_RESULT Maybe<bool> DefineProperty( |
- Local<Context> context, Local<Name> key, PropertyDescriptor& descriptor); |
+ Local<Context> context, Local<Name> key, PropertyDescriptor& descriptor, |
+ CallInterceptors call_interceptors = CallInterceptors::kDontSkip); |
// Sets an own property on this object bypassing interceptors and |
// overriding accessors or read-only properties. |