Index: src/lookup.cc |
diff --git a/src/lookup.cc b/src/lookup.cc |
index 1265d9056ea74f046584ebb21248a882c77bf9f0..38e5d1ad2b0a2dc6742aea89498b6d68f345c22f 100644 |
--- a/src/lookup.cc |
+++ b/src/lookup.cc |
@@ -517,18 +517,21 @@ void LookupIterator::WriteDataValue(Handle<Object> value) { |
Handle<JSObject> object = Handle<JSObject>::cast(holder); |
ElementsAccessor* accessor = object->GetElementsAccessor(); |
accessor->Set(object, number_, *value); |
+ } else if (holder->HasFastProperties()) { |
+ if (property_details_.type() == v8::internal::DATA) { |
+ JSObject::cast(*holder)->WriteToField(descriptor_number(), |
+ property_details_, *value); |
+ } else { |
+ DCHECK_EQ(v8::internal::DATA_CONSTANT, property_details_.type()); |
+ } |
} else if (holder->IsJSGlobalObject()) { |
Handle<GlobalDictionary> property_dictionary = |
handle(JSObject::cast(*holder)->global_dictionary()); |
PropertyCell::UpdateCell(property_dictionary, dictionary_entry(), value, |
property_details_); |
- } else if (!holder->HasFastProperties()) { |
+ } else { |
NameDictionary* property_dictionary = holder->property_dictionary(); |
property_dictionary->ValueAtPut(dictionary_entry(), *value); |
- } else if (property_details_.type() == v8::internal::DATA) { |
- JSObject::cast(*holder)->WriteToField(descriptor_number(), *value); |
- } else { |
- DCHECK_EQ(v8::internal::DATA_CONSTANT, property_details_.type()); |
} |
} |