Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index 2d4421290c424919b7e5a522569662fca25b1d7a..8b1c3fee434cccf48cba3852dadcb2788bc4c898 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -694,7 +694,7 @@ void JSObject::SetNormalizedProperty(Handle<JSObject> object, |
// Please note we have to update the property details. |
property_dictionary->DetailsAtPut(entry, details); |
} else { |
- property_dictionary->SetEntry(entry, *name, *value, details); |
+ property_dictionary->SetEntry(entry, name, value, details); |
} |
} |
@@ -1934,7 +1934,7 @@ void JSObject::AddSlowProperty(Handle<JSObject> object, |
int index = dict->NextEnumerationIndex(); |
PropertyDetails details = PropertyDetails(attributes, NORMAL, index); |
dict->SetNextEnumerationIndex(index + 1); |
- dict->SetEntry(entry, *name, *cell, details); |
+ dict->SetEntry(entry, name, cell, details); |
return; |
} |
Handle<PropertyCell> cell = isolate->factory()->NewPropertyCell(value); |
@@ -14984,18 +14984,6 @@ template Handle<NameDictionary> |
Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >:: |
EnsureCapacity(Handle<NameDictionary>, int, Handle<Name>); |
-template MaybeObject* |
-Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>:: |
- AddEntry(uint32_t, Object*, PropertyDetails, uint32_t); |
- |
-template MaybeObject* |
-Dictionary<UnseededNumberDictionary, UnseededNumberDictionaryShape, uint32_t>:: |
- AddEntry(uint32_t, Object*, PropertyDetails, uint32_t); |
- |
-template MaybeObject* |
-Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >::AddEntry( |
- Handle<Name>, Object*, PropertyDetails, uint32_t); |
- |
template |
int Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>:: |
NumberOfEnumElements(); |
@@ -15844,8 +15832,9 @@ Handle<Object> Dictionary<Derived, Shape, Key>::DeleteProperty( |
if (details.IsDontDelete() && mode != JSReceiver::FORCE_DELETION) { |
return factory->false_value(); |
} |
+ |
dictionary->SetEntry( |
- entry, *factory->the_hole_value(), *factory->the_hole_value()); |
+ entry, factory->the_hole_value(), factory->the_hole_value()); |
dictionary->ElementRemoved(); |
return factory->true_value(); |
} |
@@ -15870,7 +15859,8 @@ Handle<Derived> Dictionary<Derived, Shape, Key>::AtPut( |
USE(k); |
PropertyDetails details = PropertyDetails(NONE, NORMAL, 0); |
- return AddEntry(dictionary, key, value, details, dictionary->Hash(key)); |
+ AddEntry(dictionary, key, value, details, dictionary->Hash(key)); |
+ return dictionary; |
} |
@@ -15885,52 +15875,37 @@ Handle<Derived> Dictionary<Derived, Shape, Key>::Add( |
// Check whether the dictionary should be extended. |
dictionary = EnsureCapacity(dictionary, 1, key); |
- return AddEntry(dictionary, key, value, details, dictionary->Hash(key)); |
+ AddEntry(dictionary, key, value, details, dictionary->Hash(key)); |
+ return dictionary; |
} |
// Add a key, value pair to the dictionary. |
template<typename Derived, typename Shape, typename Key> |
-Handle<Derived> Dictionary<Derived, Shape, Key>::AddEntry( |
+void Dictionary<Derived, Shape, Key>::AddEntry( |
Handle<Derived> dictionary, |
Key key, |
Handle<Object> value, |
PropertyDetails details, |
uint32_t hash) { |
- CALL_HEAP_FUNCTION( |
- dictionary->GetIsolate(), |
- dictionary->AddEntry(key, *value, details, hash), |
- Derived); |
-} |
- |
-template<typename Derived, typename Shape, typename Key> |
-MaybeObject* Dictionary<Derived, Shape, Key>::AddEntry( |
- Key key, |
- Object* value, |
- PropertyDetails details, |
- uint32_t hash) { |
// Compute the key object. |
- Object* k; |
- { MaybeObject* maybe_k = Shape::AsObject(this->GetHeap(), key); |
- if (!maybe_k->ToObject(&k)) return maybe_k; |
- } |
+ Handle<Object> k = Shape::AsHandle(dictionary->GetIsolate(), key); |
- uint32_t entry = Dictionary::FindInsertionEntry(hash); |
+ uint32_t entry = dictionary->FindInsertionEntry(hash); |
// Insert element at empty or deleted entry |
if (!details.IsDeleted() && |
details.dictionary_index() == 0 && |
Shape::kIsEnumerable) { |
// Assign an enumeration index to the property and update |
// SetNextEnumerationIndex. |
- int index = NextEnumerationIndex(); |
+ int index = dictionary->NextEnumerationIndex(); |
details = PropertyDetails(details.attributes(), details.type(), index); |
- SetNextEnumerationIndex(index + 1); |
+ dictionary->SetNextEnumerationIndex(index + 1); |
} |
- SetEntry(entry, k, value, details); |
- ASSERT((Dictionary::KeyAt(entry)->IsNumber() || |
- Dictionary::KeyAt(entry)->IsName())); |
- DerivedHashTable::ElementAdded(); |
- return this; |
+ dictionary->SetEntry(entry, k, value, details); |
+ ASSERT((dictionary->KeyAt(entry)->IsNumber() || |
+ dictionary->KeyAt(entry)->IsName())); |
+ dictionary->ElementAdded(); |
} |
@@ -16006,7 +15981,7 @@ Handle<SeededNumberDictionary> SeededNumberDictionary::Set( |
dictionary->DetailsAt(entry).dictionary_index()); |
Handle<Object> object_key = |
SeededNumberDictionaryShape::AsHandle(dictionary->GetIsolate(), key); |
- dictionary->SetEntry(entry, *object_key, *value, details); |
+ dictionary->SetEntry(entry, object_key, value, details); |
return dictionary; |
} |
@@ -16019,7 +15994,7 @@ Handle<UnseededNumberDictionary> UnseededNumberDictionary::Set( |
if (entry == kNotFound) return AddNumberEntry(dictionary, key, value); |
Handle<Object> object_key = |
UnseededNumberDictionaryShape::AsHandle(dictionary->GetIsolate(), key); |
- dictionary->SetEntry(entry, *object_key, *value); |
+ dictionary->SetEntry(entry, object_key, value); |
return dictionary; |
} |