Chromium Code Reviews| Index: src/lookup.cc |
| diff --git a/src/lookup.cc b/src/lookup.cc |
| index b91ad4c9f4bb9ec1b12db7e548bfac0fe27e2fc0..114c0cead5632620c51a5a632c0a41ddfb1c625a 100644 |
| --- a/src/lookup.cc |
| +++ b/src/lookup.cc |
| @@ -173,21 +173,16 @@ void LookupIterator::ReconfigureDataProperty(Handle<Object> value, |
| Handle<JSObject> holder = GetHolder<JSObject>(); |
| if (IsElement()) { |
| // TODO(verwaest): Clean up. |
| - if (attributes == NONE && !holder->HasDictionaryElements() && |
| - !holder->HasDictionaryArgumentsElements()) { |
| - ElementsAccessor* accessor = holder->GetElementsAccessor(); |
| - accessor->Set(holder, index(), value); |
| + DCHECK(holder->HasFastElements() || holder->HasDictionaryElements() || |
| + holder->HasDictionaryArgumentsElements()); |
| + DCHECK(attributes != NONE || !holder->HasFastElements()); |
| + Handle<SeededNumberDictionary> d = JSObject::NormalizeElements(holder); |
| + // TODO(verwaest): Move this into NormalizeElements. |
| + d->set_requires_slow_elements(); |
| + if (holder->HasDictionaryElements()) { |
| + JSObject::SetDictionaryElement(holder, index(), value, attributes); |
| } else { |
| - DCHECK(holder->HasFastElements() || holder->HasDictionaryElements() || |
| - holder->HasSloppyArgumentsElements()); |
| - Handle<SeededNumberDictionary> d = JSObject::NormalizeElements(holder); |
| - // TODO(verwaest): Move this into NormalizeElements. |
| - d->set_requires_slow_elements(); |
| - if (holder->HasDictionaryElements()) { |
| - JSObject::SetDictionaryElement(holder, index(), value, attributes); |
| - } else { |
| - JSObject::SetSloppyArgumentsElement(holder, index(), value, attributes); |
| - } |
| + JSObject::SetSloppyArgumentsElement(holder, index(), value, attributes); |
|
Jakob Kummerow
2015/06/18 11:49:17
Arguably this should be called SetDictionaryArgume
|
| } |
| } else if (holder_map_->is_dictionary_map()) { |
| PropertyDetails details(attributes, v8::internal::DATA, 0, |