| Index: include/v8.h
|
| diff --git a/include/v8.h b/include/v8.h
|
| index cbe8edd59b59349f1492d68853c21ca79f9f122b..4d0d4aa08914f4b6b2be0494cc4ae65a3ecd4a03 100644
|
| --- a/include/v8.h
|
| +++ b/include/v8.h
|
| @@ -3353,6 +3353,55 @@ typedef void (*NamedPropertyEnumeratorCallback)(
|
| const PropertyCallbackInfo<Array>& info);
|
|
|
|
|
| +// TODO(wingo): Deprecate and remove previous typedefs, and replace
|
| +// GenericNamedPropertyFooCallback with just NamedPropertyFooCallback.
|
| +/**
|
| + * GenericNamedProperty[Getter|Setter] are used as interceptors on object.
|
| + * See ObjectTemplate::SetNamedPropertyHandler.
|
| + */
|
| +typedef void (*GenericNamedPropertyGetterCallback)(
|
| + Local<Name> property,
|
| + const PropertyCallbackInfo<Value>& info);
|
| +
|
| +
|
| +/**
|
| + * Returns the value if the setter intercepts the request.
|
| + * Otherwise, returns an empty handle.
|
| + */
|
| +typedef void (*GenericNamedPropertySetterCallback)(
|
| + Local<Name> property,
|
| + Local<Value> value,
|
| + const PropertyCallbackInfo<Value>& info);
|
| +
|
| +
|
| +/**
|
| + * Returns a non-empty handle if the interceptor intercepts the request.
|
| + * The result is an integer encoding property attributes (like v8::None,
|
| + * v8::DontEnum, etc.)
|
| + */
|
| +typedef void (*GenericNamedPropertyQueryCallback)(
|
| + Local<Name> property,
|
| + const PropertyCallbackInfo<Integer>& info);
|
| +
|
| +
|
| +/**
|
| + * Returns a non-empty handle if the deleter intercepts the request.
|
| + * The return value is true if the property could be deleted and false
|
| + * otherwise.
|
| + */
|
| +typedef void (*GenericNamedPropertyDeleterCallback)(
|
| + Local<Name> property,
|
| + const PropertyCallbackInfo<Boolean>& info);
|
| +
|
| +
|
| +/**
|
| + * Returns an array containing the names of the properties the named
|
| + * property getter intercepts.
|
| + */
|
| +typedef void (*GenericNamedPropertyEnumeratorCallback)(
|
| + const PropertyCallbackInfo<Array>& info);
|
| +
|
| +
|
| /**
|
| * Returns the value of the property if the getter intercepts the
|
| * request. Otherwise, returns an empty handle.
|
| @@ -3674,6 +3723,9 @@ class V8_EXPORT ObjectTemplate : public Template {
|
| * from this object template, the provided callback is invoked instead of
|
| * accessing the property directly on the JavaScript object.
|
| *
|
| + * Note that new code should use the second version that can intercept
|
| + * symbol-named properties as well as string-named properties.
|
| + *
|
| * \param getter The callback to invoke when getting a property.
|
| * \param setter The callback to invoke when setting a property.
|
| * \param query The callback to invoke to check if a property is present,
|
| @@ -3691,6 +3743,13 @@ class V8_EXPORT ObjectTemplate : public Template {
|
| NamedPropertyDeleterCallback deleter = 0,
|
| NamedPropertyEnumeratorCallback enumerator = 0,
|
| Handle<Value> data = Handle<Value>());
|
| + void SetNamedPropertyHandler(
|
| + GenericNamedPropertyGetterCallback getter,
|
| + GenericNamedPropertySetterCallback setter = 0,
|
| + GenericNamedPropertyQueryCallback query = 0,
|
| + GenericNamedPropertyDeleterCallback deleter = 0,
|
| + GenericNamedPropertyEnumeratorCallback enumerator = 0,
|
| + Handle<Value> data = Handle<Value>());
|
|
|
| /**
|
| * Sets an indexed property handler on the object template.
|
|
|