Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index eae2758914a2d69604ed3abf3df493f93ee1ab82..0ba7859b3883baa1063843db751abca196ec8875 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -16057,6 +16057,16 @@ MaybeObject* UnseededNumberDictionary::AddNumberEntry(uint32_t key, |
} |
+Handle<UnseededNumberDictionary> UnseededNumberDictionary::AddNumberEntry( |
+ Handle<UnseededNumberDictionary> dictionary, |
+ uint32_t key, |
+ Handle<Object> value) { |
+ CALL_HEAP_FUNCTION(dictionary->GetIsolate(), |
+ dictionary->AddNumberEntry(key, *value), |
+ UnseededNumberDictionary); |
+} |
+ |
+ |
MaybeObject* SeededNumberDictionary::AtNumberPut(uint32_t key, Object* value) { |
UpdateMaxNumberKey(key); |
return AtPut(key, value); |
@@ -16071,53 +16081,34 @@ MaybeObject* UnseededNumberDictionary::AtNumberPut(uint32_t key, |
Handle<SeededNumberDictionary> SeededNumberDictionary::Set( |
Handle<SeededNumberDictionary> dictionary, |
- uint32_t index, |
+ uint32_t key, |
Handle<Object> value, |
PropertyDetails details) { |
- CALL_HEAP_FUNCTION(dictionary->GetIsolate(), |
- dictionary->Set(index, *value, details), |
- SeededNumberDictionary); |
-} |
- |
- |
-Handle<UnseededNumberDictionary> UnseededNumberDictionary::Set( |
- Handle<UnseededNumberDictionary> dictionary, |
- uint32_t index, |
- Handle<Object> value) { |
- CALL_HEAP_FUNCTION(dictionary->GetIsolate(), |
- dictionary->Set(index, *value), |
- UnseededNumberDictionary); |
-} |
- |
- |
-MaybeObject* SeededNumberDictionary::Set(uint32_t key, |
- Object* value, |
- PropertyDetails details) { |
- int entry = FindEntry(key); |
- if (entry == kNotFound) return AddNumberEntry(key, value, details); |
+ int entry = dictionary->FindEntry(key); |
+ if (entry == kNotFound) { |
+ return AddNumberEntry(dictionary, key, value, details); |
+ } |
// Preserve enumeration index. |
details = PropertyDetails(details.attributes(), |
details.type(), |
- DetailsAt(entry).dictionary_index()); |
- MaybeObject* maybe_object_key = |
- SeededNumberDictionaryShape::AsObject(GetHeap(), key); |
- Object* object_key; |
- if (!maybe_object_key->ToObject(&object_key)) return maybe_object_key; |
- SetEntry(entry, object_key, value, details); |
- return this; |
+ dictionary->DetailsAt(entry).dictionary_index()); |
+ Handle<Object> object_key = |
+ SeededNumberDictionaryShape::AsHandle(dictionary->GetIsolate(), key); |
+ dictionary->SetEntry(entry, *object_key, *value, details); |
+ return dictionary; |
} |
-MaybeObject* UnseededNumberDictionary::Set(uint32_t key, |
- Object* value) { |
- int entry = FindEntry(key); |
- if (entry == kNotFound) return AddNumberEntry(key, value); |
- MaybeObject* maybe_object_key = |
- UnseededNumberDictionaryShape::AsObject(GetHeap(), key); |
- Object* object_key; |
- if (!maybe_object_key->ToObject(&object_key)) return maybe_object_key; |
- SetEntry(entry, object_key, value); |
- return this; |
+Handle<UnseededNumberDictionary> UnseededNumberDictionary::Set( |
+ Handle<UnseededNumberDictionary> dictionary, |
+ uint32_t key, |
+ Handle<Object> value) { |
+ int entry = dictionary->FindEntry(key); |
+ if (entry == kNotFound) return AddNumberEntry(dictionary, key, value); |
+ Handle<Object> object_key = |
+ UnseededNumberDictionaryShape::AsHandle(dictionary->GetIsolate(), key); |
+ dictionary->SetEntry(entry, *object_key, *value); |
+ return dictionary; |
} |