| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index e837e58d8f0ff56adbaf5c24972de5f54d5d6d6b..54762699e16f9bdbb592cde7a793f676c21e7657 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -4290,11 +4290,8 @@ MaybeHandle<Object> JSObject::DefinePropertyOrElementIgnoreAttributes(
|
| Handle<JSObject> object, Handle<Name> name, Handle<Object> value,
|
| PropertyAttributes attributes, ExecutableAccessorInfoHandling handling) {
|
| Isolate* isolate = object->GetIsolate();
|
| - uint32_t index;
|
| - LookupIterator it =
|
| - name->AsArrayIndex(&index)
|
| - ? LookupIterator(isolate, object, index, LookupIterator::OWN)
|
| - : LookupIterator(object, name, LookupIterator::OWN);
|
| + LookupIterator it = LookupIterator::PropertyOrElement(isolate, object, name,
|
| + LookupIterator::OWN);
|
| return DefineOwnPropertyIgnoreAttributes(&it, value, attributes, handling);
|
| }
|
|
|
| @@ -5254,11 +5251,8 @@ MaybeHandle<Object> JSReceiver::DeleteElement(Handle<JSReceiver> object,
|
| MaybeHandle<Object> JSReceiver::DeleteProperty(Handle<JSReceiver> object,
|
| Handle<Name> name,
|
| LanguageMode language_mode) {
|
| - uint32_t index;
|
| - LookupIterator::Configuration c = LookupIterator::HIDDEN;
|
| - LookupIterator it = name->AsArrayIndex(&index)
|
| - ? LookupIterator(name->GetIsolate(), object, index, c)
|
| - : LookupIterator(object, name, c);
|
| + LookupIterator it = LookupIterator::PropertyOrElement(
|
| + name->GetIsolate(), object, name, LookupIterator::HIDDEN);
|
| return JSObject::DeleteProperty(&it, language_mode);
|
| }
|
|
|
| @@ -6409,11 +6403,8 @@ MaybeHandle<Object> JSObject::DefineAccessor(Handle<JSObject> object,
|
| // Try to flatten before operating on the string.
|
| if (name->IsString()) name = String::Flatten(Handle<String>::cast(name));
|
|
|
| - uint32_t index = 0;
|
| - LookupIterator::Configuration c = LookupIterator::HIDDEN_SKIP_INTERCEPTOR;
|
| - LookupIterator it = name->AsArrayIndex(&index)
|
| - ? LookupIterator(isolate, object, index, c)
|
| - : LookupIterator(object, name, c);
|
| + LookupIterator it = LookupIterator::PropertyOrElement(
|
| + isolate, object, name, LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
|
|
|
| if (it.state() == LookupIterator::ACCESS_CHECK) {
|
| if (!it.HasAccess()) {
|
| @@ -6438,7 +6429,7 @@ MaybeHandle<Object> JSObject::DefineAccessor(Handle<JSObject> object,
|
| }
|
|
|
| if (it.IsElement()) {
|
| - DefineElementAccessor(it.GetStoreTarget(), index, getter, setter,
|
| + DefineElementAccessor(it.GetStoreTarget(), it.index(), getter, setter,
|
| attributes);
|
| } else {
|
| DCHECK(getter->IsSpecFunction() || getter->IsUndefined() ||
|
| @@ -6477,11 +6468,8 @@ MaybeHandle<Object> JSObject::SetAccessor(Handle<JSObject> object,
|
| Handle<Name> name(Name::cast(info->name()));
|
| if (name->IsString()) name = String::Flatten(Handle<String>::cast(name));
|
|
|
| - uint32_t index = 0;
|
| - LookupIterator::Configuration c = LookupIterator::HIDDEN_SKIP_INTERCEPTOR;
|
| - LookupIterator it = name->AsArrayIndex(&index)
|
| - ? LookupIterator(isolate, object, index, c)
|
| - : LookupIterator(object, name, c);
|
| + LookupIterator it = LookupIterator::PropertyOrElement(
|
| + isolate, object, name, LookupIterator::HIDDEN_SKIP_INTERCEPTOR);
|
|
|
| // Duplicate ACCESS_CHECK outside of GetPropertyAttributes for the case that
|
| // the FailedAccessCheckCallbackFunction doesn't throw an exception.
|
| @@ -6512,7 +6500,7 @@ MaybeHandle<Object> JSObject::SetAccessor(Handle<JSObject> object,
|
| }
|
|
|
| if (it.IsElement()) {
|
| - SetElementCallback(object, index, info, info->property_attributes());
|
| + SetElementCallback(object, it.index(), info, info->property_attributes());
|
| } else {
|
| SetPropertyCallback(object, name, info, info->property_attributes());
|
| }
|
| @@ -6530,13 +6518,8 @@ MaybeHandle<Object> JSObject::GetAccessor(Handle<JSObject> object,
|
| // interceptor calls.
|
| AssertNoContextChange ncc(isolate);
|
|
|
| - // Make the lookup and include prototypes.
|
| - uint32_t index = 0;
|
| - LookupIterator::Configuration c =
|
| - LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR;
|
| - LookupIterator it = name->AsArrayIndex(&index)
|
| - ? LookupIterator(isolate, object, index, c)
|
| - : LookupIterator(object, name, c);
|
| + LookupIterator it = LookupIterator::PropertyOrElement(
|
| + isolate, object, name, LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
|
|
|
| for (; it.IsFound(); it.Next()) {
|
| switch (it.state()) {
|
|
|