| Index: src/elements.cc
|
| diff --git a/src/elements.cc b/src/elements.cc
|
| index abb046725c8a0923e2ccd45aaf9826ebb9eb0453..93f9c884d4cd8ae2987b6a40acc58f7708e25732 100644
|
| --- a/src/elements.cc
|
| +++ b/src/elements.cc
|
| @@ -659,21 +659,17 @@ class ElementsAccessorBase : public ElementsAccessor {
|
| ? ABSENT : NONE;
|
| }
|
|
|
| - MUST_USE_RESULT virtual MaybeHandle<AccessorPair> GetAccessorPair(
|
| - Handle<Object> receiver,
|
| - Handle<JSObject> holder,
|
| - uint32_t key,
|
| + MUST_USE_RESULT virtual MaybeHandle<Object> GetStructure(
|
| + Handle<Object> receiver, Handle<JSObject> holder, uint32_t key,
|
| Handle<FixedArrayBase> backing_store) FINAL OVERRIDE {
|
| - return ElementsAccessorSubclass::GetAccessorPairImpl(
|
| - receiver, holder, key, backing_store);
|
| + return ElementsAccessorSubclass::GetStructureImpl(receiver, holder, key,
|
| + backing_store);
|
| }
|
|
|
| - MUST_USE_RESULT static MaybeHandle<AccessorPair> GetAccessorPairImpl(
|
| - Handle<Object> receiver,
|
| - Handle<JSObject> obj,
|
| - uint32_t key,
|
| + MUST_USE_RESULT static MaybeHandle<Object> GetStructureImpl(
|
| + Handle<Object> receiver, Handle<JSObject> obj, uint32_t key,
|
| Handle<FixedArrayBase> backing_store) {
|
| - return MaybeHandle<AccessorPair>();
|
| + return MaybeHandle<Object>();
|
| }
|
|
|
| MUST_USE_RESULT virtual MaybeHandle<Object> SetLength(
|
| @@ -1514,20 +1510,17 @@ class DictionaryElementsAccessor
|
| return ABSENT;
|
| }
|
|
|
| - MUST_USE_RESULT static MaybeHandle<AccessorPair> GetAccessorPairImpl(
|
| - Handle<Object> receiver,
|
| - Handle<JSObject> obj,
|
| - uint32_t key,
|
| + MUST_USE_RESULT static MaybeHandle<Object> GetStructureImpl(
|
| + Handle<Object> receiver, Handle<JSObject> obj, uint32_t key,
|
| Handle<FixedArrayBase> store) {
|
| Handle<SeededNumberDictionary> backing_store =
|
| Handle<SeededNumberDictionary>::cast(store);
|
| int entry = backing_store->FindEntry(key);
|
| if (entry != SeededNumberDictionary::kNotFound &&
|
| - backing_store->DetailsAt(entry).type() == CALLBACKS &&
|
| - backing_store->ValueAt(entry)->IsAccessorPair()) {
|
| - return handle(AccessorPair::cast(backing_store->ValueAt(entry)));
|
| + backing_store->DetailsAt(entry).type() == CALLBACKS) {
|
| + return handle(backing_store->ValueAt(entry), obj->GetIsolate());
|
| }
|
| - return MaybeHandle<AccessorPair>();
|
| + return MaybeHandle<Object>();
|
| }
|
|
|
| static bool HasElementImpl(Handle<Object> receiver,
|
| @@ -1618,20 +1611,18 @@ class SloppyArgumentsElementsAccessor : public ElementsAccessorBase<
|
| }
|
| }
|
|
|
| - MUST_USE_RESULT static MaybeHandle<AccessorPair> GetAccessorPairImpl(
|
| - Handle<Object> receiver,
|
| - Handle<JSObject> obj,
|
| - uint32_t key,
|
| + MUST_USE_RESULT static MaybeHandle<Object> GetStructureImpl(
|
| + Handle<Object> receiver, Handle<JSObject> obj, uint32_t key,
|
| Handle<FixedArrayBase> parameters) {
|
| Handle<FixedArray> parameter_map = Handle<FixedArray>::cast(parameters);
|
| Handle<Object> probe = GetParameterMapArg(obj, parameter_map, key);
|
| if (!probe->IsTheHole()) {
|
| - return MaybeHandle<AccessorPair>();
|
| + return MaybeHandle<Object>();
|
| } else {
|
| // If not aliased, check the arguments.
|
| Handle<FixedArray> arguments(FixedArray::cast(parameter_map->get(1)));
|
| - return ElementsAccessor::ForArray(arguments)->GetAccessorPair(
|
| - receiver, obj, key, arguments);
|
| + return ElementsAccessor::ForArray(arguments)
|
| + ->GetStructure(receiver, obj, key, arguments);
|
| }
|
| }
|
|
|
|
|