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, |