| Index: include/v8.h
|
| diff --git a/include/v8.h b/include/v8.h
|
| index a25e2f715aa5bd410ea341d1757276fe49283681..d07808fe1513f33f40c325fc499f5d99d35768b6 100644
|
| --- a/include/v8.h
|
| +++ b/include/v8.h
|
| @@ -4438,6 +4438,29 @@ typedef void (*GenericNamedPropertyDeleterCallback)(
|
| typedef void (*GenericNamedPropertyEnumeratorCallback)(
|
| const PropertyCallbackInfo<Array>& info);
|
|
|
| +/**
|
| + * Interceptor for defineProperty requests on an object.
|
| + *
|
| + * Use `info.GetReturnValue()` to indicate whether the request was intercepted
|
| + * or not. If the definer successfully intercepts the request, i.e., if the
|
| + * request should not be further executed, call
|
| + * `info.GetReturnValue().Set(value)`. If the definer
|
| + * did not intercept the request, i.e., if the request should be handled as
|
| + * if no interceptor is present, do not not call `Set()`.
|
| + *
|
| + * \param property The name of the property for which the request was
|
| + * intercepted.
|
| + * \param desc The property descriptor which will be used to define the
|
| + * property if the request is not intercepted.
|
| + * \param info Information about the intercepted request, such as
|
| + * isolate, receiver, return value, or whether running in `'use strict'` mode.
|
| + * See `PropertyCallbackInfo`.
|
| + *
|
| + * See also `ObjectTemplate::SetNamedPropertyHandler`.
|
| + */
|
| +typedef void (*GenericNamedPropertyDefinerCallback)(
|
| + Local<Name> key, const PropertyDescriptor& desc,
|
| + const PropertyCallbackInfo<Value>& info);
|
|
|
| /**
|
| * Returns the value of the property if the getter intercepts the
|
| @@ -4484,6 +4507,9 @@ typedef void (*IndexedPropertyDeleterCallback)(
|
| typedef void (*IndexedPropertyEnumeratorCallback)(
|
| const PropertyCallbackInfo<Array>& info);
|
|
|
| +typedef void (*IndexedPropertyDefinerCallback)(
|
| + uint32_t index, const PropertyDescriptor& desc,
|
| + const PropertyCallbackInfo<Value>& info);
|
|
|
| /**
|
| * Access type specification.
|
| @@ -4746,6 +4772,25 @@ struct NamedPropertyHandlerConfiguration {
|
| query(query),
|
| deleter(deleter),
|
| enumerator(enumerator),
|
| + definer(0),
|
| + data(data),
|
| + flags(flags) {}
|
| +
|
| + NamedPropertyHandlerConfiguration(
|
| + GenericNamedPropertyGetterCallback getter,
|
| + GenericNamedPropertySetterCallback setter,
|
| + GenericNamedPropertyQueryCallback query,
|
| + GenericNamedPropertyDeleterCallback deleter,
|
| + GenericNamedPropertyEnumeratorCallback enumerator,
|
| + GenericNamedPropertyDefinerCallback definer,
|
| + Local<Value> data = Local<Value>(),
|
| + PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
|
| + : getter(getter),
|
| + setter(setter),
|
| + query(query),
|
| + deleter(deleter),
|
| + enumerator(enumerator),
|
| + definer(definer),
|
| data(data),
|
| flags(flags) {}
|
|
|
| @@ -4754,6 +4799,7 @@ struct NamedPropertyHandlerConfiguration {
|
| GenericNamedPropertyQueryCallback query;
|
| GenericNamedPropertyDeleterCallback deleter;
|
| GenericNamedPropertyEnumeratorCallback enumerator;
|
| + GenericNamedPropertyDefinerCallback definer;
|
| Local<Value> data;
|
| PropertyHandlerFlags flags;
|
| };
|
| @@ -4774,6 +4820,24 @@ struct IndexedPropertyHandlerConfiguration {
|
| query(query),
|
| deleter(deleter),
|
| enumerator(enumerator),
|
| + definer(0),
|
| + data(data),
|
| + flags(flags) {}
|
| +
|
| + IndexedPropertyHandlerConfiguration(
|
| + IndexedPropertyGetterCallback getter,
|
| + IndexedPropertySetterCallback setter, IndexedPropertyQueryCallback query,
|
| + IndexedPropertyDeleterCallback deleter,
|
| + IndexedPropertyEnumeratorCallback enumerator,
|
| + IndexedPropertyDefinerCallback definer,
|
| + Local<Value> data = Local<Value>(),
|
| + PropertyHandlerFlags flags = PropertyHandlerFlags::kNone)
|
| + : getter(getter),
|
| + setter(setter),
|
| + query(query),
|
| + deleter(deleter),
|
| + enumerator(enumerator),
|
| + definer(0),
|
| data(data),
|
| flags(flags) {}
|
|
|
| @@ -4782,6 +4846,7 @@ struct IndexedPropertyHandlerConfiguration {
|
| IndexedPropertyQueryCallback query;
|
| IndexedPropertyDeleterCallback deleter;
|
| IndexedPropertyEnumeratorCallback enumerator;
|
| + IndexedPropertyDefinerCallback definer;
|
| Local<Value> data;
|
| PropertyHandlerFlags flags;
|
| };
|
|
|