| Index: src/objects.h
|
| diff --git a/src/objects.h b/src/objects.h
|
| index 37ab88d95aded9e95aa72f258336115a6ab35885..af6bb667e16863aefb33957aa22710afc5c5234d 100644
|
| --- a/src/objects.h
|
| +++ b/src/objects.h
|
| @@ -1131,6 +1131,9 @@ class Object {
|
| StorePropertyMode data_store_mode = NORMAL_PROPERTY);
|
| MUST_USE_RESULT static MaybeHandle<Object> WriteToReadOnlyProperty(
|
| LookupIterator* it, Handle<Object> value, StrictMode strict_mode);
|
| + MUST_USE_RESULT static MaybeHandle<Object> WriteToReadOnlyElement(
|
| + Isolate* isolate, Handle<Object> receiver, uint32_t index,
|
| + Handle<Object> value, StrictMode strict_mode);
|
| MUST_USE_RESULT static MaybeHandle<Object> SetDataProperty(
|
| LookupIterator* it, Handle<Object> value);
|
| MUST_USE_RESULT static MaybeHandle<Object> AddDataProperty(
|
| @@ -1176,6 +1179,10 @@ class Object {
|
| Handle<Object> receiver,
|
| uint32_t index);
|
|
|
| + MUST_USE_RESULT static MaybeHandle<Object> SetElementWithReceiver(
|
| + Isolate* isolate, Handle<Object> object, Handle<Object> receiver,
|
| + uint32_t index, Handle<Object> value, StrictMode strict_mode);
|
| +
|
| static inline Handle<Object> GetPrototypeSkipHiddenPrototypes(
|
| Isolate* isolate, Handle<Object> receiver);
|
|
|
| @@ -1927,8 +1934,7 @@ class JSObject: public JSReceiver {
|
|
|
| // These methods do not perform access checks!
|
| MUST_USE_RESULT static MaybeHandle<AccessorPair> GetOwnElementAccessorPair(
|
| - Handle<JSObject> object,
|
| - uint32_t index);
|
| + Handle<JSObject> object, uint32_t index);
|
|
|
| MUST_USE_RESULT static MaybeHandle<Object> SetFastElement(
|
| Handle<JSObject> object,
|
| @@ -2253,18 +2259,30 @@ class JSObject: public JSReceiver {
|
| GetElementAttributeWithInterceptor(Handle<JSObject> object,
|
| Handle<JSReceiver> receiver,
|
| uint32_t index, bool continue_search);
|
| +
|
| + // Queries indexed interceptor on an object for property attributes.
|
| + //
|
| + // We determine property attributes as follows:
|
| + // - if interceptor has a query callback, then the property attributes are
|
| + // the result of query callback for index.
|
| + // - otherwise if interceptor has a getter callback and it returns
|
| + // non-empty value on index, then the property attributes is NONE
|
| + // (property is present, and it is enumerable, configurable, writable)
|
| + // - otherwise there are no property attributes that can be inferred for
|
| + // interceptor, and this function returns ABSENT.
|
| + MUST_USE_RESULT static Maybe<PropertyAttributes>
|
| + GetElementAttributeFromInterceptor(Handle<JSObject> object,
|
| + Handle<Object> receiver,
|
| + uint32_t index);
|
| +
|
| MUST_USE_RESULT static Maybe<PropertyAttributes>
|
| GetElementAttributeWithoutInterceptor(Handle<JSObject> object,
|
| Handle<JSReceiver> receiver,
|
| uint32_t index,
|
| bool continue_search);
|
| MUST_USE_RESULT static MaybeHandle<Object> SetElementWithCallback(
|
| - Handle<JSObject> object,
|
| - Handle<Object> structure,
|
| - uint32_t index,
|
| - Handle<Object> value,
|
| - Handle<JSObject> holder,
|
| - StrictMode strict_mode);
|
| + Handle<Object> object, Handle<Object> structure, uint32_t index,
|
| + Handle<Object> value, Handle<JSObject> holder, StrictMode strict_mode);
|
| MUST_USE_RESULT static MaybeHandle<Object> SetElementWithInterceptor(
|
| Handle<JSObject> object,
|
| uint32_t index,
|
|
|