| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 86baab160370c9e06b21d466122d15213f35de64..5c10f54aefb793f895b45f64597109e6fb4e9dda 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -667,8 +667,8 @@ void JSObject::SetNormalizedProperty(Handle<JSObject> object,
|
| store_value = object->GetIsolate()->factory()->NewPropertyCell(value);
|
| }
|
|
|
| - property_dictionary = NameDictionary::AddNameEntry(
|
| - property_dictionary, name, store_value, details);
|
| + property_dictionary = NameDictionary::Add(
|
| + property_dictionary, *name, store_value, details);
|
| object->set_properties(*property_dictionary);
|
| return;
|
| }
|
| @@ -1942,7 +1942,7 @@ void JSObject::AddSlowProperty(Handle<JSObject> object,
|
| }
|
| PropertyDetails details = PropertyDetails(attributes, NORMAL, 0);
|
| Handle<NameDictionary> result =
|
| - NameDictionary::AddNameEntry(dict, name, value, details);
|
| + NameDictionary::Add(dict, *name, value, details);
|
| if (*dict != *result) object->set_properties(*result);
|
| }
|
|
|
| @@ -4641,7 +4641,7 @@ void JSObject::NormalizeProperties(Handle<JSObject> object,
|
| Handle<Object> value(descs->GetConstant(i), isolate);
|
| PropertyDetails d = PropertyDetails(
|
| details.attributes(), NORMAL, i + 1);
|
| - dictionary = NameDictionary::AddNameEntry(dictionary, key, value, d);
|
| + dictionary = NameDictionary::Add(dictionary, *key, value, d);
|
| break;
|
| }
|
| case FIELD: {
|
| @@ -4650,7 +4650,7 @@ void JSObject::NormalizeProperties(Handle<JSObject> object,
|
| object->RawFastPropertyAt(descs->GetFieldIndex(i)), isolate);
|
| PropertyDetails d =
|
| PropertyDetails(details.attributes(), NORMAL, i + 1);
|
| - dictionary = NameDictionary::AddNameEntry(dictionary, key, value, d);
|
| + dictionary = NameDictionary::Add(dictionary, *key, value, d);
|
| break;
|
| }
|
| case CALLBACKS: {
|
| @@ -4658,7 +4658,7 @@ void JSObject::NormalizeProperties(Handle<JSObject> object,
|
| Handle<Object> value(descs->GetCallbacksObject(i), isolate);
|
| PropertyDetails d = PropertyDetails(
|
| details.attributes(), CALLBACKS, i + 1);
|
| - dictionary = NameDictionary::AddNameEntry(dictionary, key, value, d);
|
| + dictionary = NameDictionary::Add(dictionary, *key, value, d);
|
| break;
|
| }
|
| case INTERCEPTOR:
|
| @@ -14973,9 +14973,9 @@ template int
|
| Dictionary<NameDictionary, NameDictionaryShape, Name*>::
|
| NumberOfElementsFilterAttributes(PropertyAttributes);
|
|
|
| -template MaybeObject*
|
| +template Handle<NameDictionary>
|
| Dictionary<NameDictionary, NameDictionaryShape, Name*>::Add(
|
| - Name*, Object*, PropertyDetails);
|
| + Handle<NameDictionary>, Name*, Handle<Object>, PropertyDetails);
|
|
|
| template MaybeObject*
|
| Dictionary<NameDictionary, NameDictionaryShape, Name*>::
|
| @@ -14985,13 +14985,19 @@ template int
|
| Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
|
| NumberOfElementsFilterAttributes(PropertyAttributes);
|
|
|
| -template MaybeObject*
|
| -Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::Add(
|
| - uint32_t, Object*, PropertyDetails);
|
| +template Handle<SeededNumberDictionary>
|
| +Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
|
| + Add(Handle<SeededNumberDictionary>,
|
| + uint32_t,
|
| + Handle<Object>,
|
| + PropertyDetails);
|
|
|
| -template MaybeObject*
|
| +template Handle<UnseededNumberDictionary>
|
| Dictionary<UnseededNumberDictionary, UnseededNumberDictionaryShape, uint32_t>::
|
| - Add(uint32_t, Object*, PropertyDetails);
|
| + Add(Handle<UnseededNumberDictionary>,
|
| + uint32_t,
|
| + Handle<Object>,
|
| + PropertyDetails);
|
|
|
| template MaybeObject*
|
| Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
|
| @@ -15030,16 +15036,6 @@ int HashTable<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
|
| FindEntry(uint32_t);
|
|
|
|
|
| -Handle<NameDictionary> NameDictionary::AddNameEntry(Handle<NameDictionary> dict,
|
| - Handle<Name> name,
|
| - Handle<Object> value,
|
| - PropertyDetails details) {
|
| - CALL_HEAP_FUNCTION(dict->GetIsolate(),
|
| - dict->Add(*name, *value, details),
|
| - NameDictionary);
|
| -}
|
| -
|
| -
|
| Handle<Object> JSObject::PrepareSlowElementsForSort(
|
| Handle<JSObject> object, uint32_t limit) {
|
| ASSERT(object->HasDictionaryElements());
|
| @@ -15480,8 +15476,8 @@ Handle<PropertyCell> JSGlobalObject::EnsurePropertyCell(
|
| isolate->factory()->the_hole_value());
|
| PropertyDetails details(NONE, NORMAL, 0);
|
| details = details.AsDeleted();
|
| - Handle<NameDictionary> dictionary = NameDictionary::AddNameEntry(
|
| - handle(global->property_dictionary()), name, cell, details);
|
| + Handle<NameDictionary> dictionary = NameDictionary::Add(
|
| + handle(global->property_dictionary()), *name, cell, details);
|
| global->set_properties(*dictionary);
|
| return cell;
|
| } else {
|
| @@ -15960,20 +15956,17 @@ Handle<Derived> Dictionary<Derived, Shape, Key>::AtPut(
|
|
|
|
|
| template<typename Derived, typename Shape, typename Key>
|
| -MaybeObject* Dictionary<Derived, Shape, Key>::Add(
|
| +Handle<Derived> Dictionary<Derived, Shape, Key>::Add(
|
| + Handle<Derived> dictionary,
|
| Key key,
|
| - Object* value,
|
| + Handle<Object> value,
|
| PropertyDetails details) {
|
| // Valdate key is absent.
|
| - SLOW_ASSERT((this->FindEntry(key) == Dictionary::kNotFound));
|
| + SLOW_ASSERT((dictionary->FindEntry(key) == Dictionary::kNotFound));
|
| // Check whether the dictionary should be extended.
|
| - Object* obj;
|
| - { MaybeObject* maybe_obj = EnsureCapacity(1, key);
|
| - if (!maybe_obj->ToObject(&obj)) return maybe_obj;
|
| - }
|
| + dictionary = EnsureCapacity(dictionary, 1, key);
|
|
|
| - return Dictionary::cast(obj)->AddEntry(
|
| - key, value, details, Dictionary::Hash(key));
|
| + return AddEntry(dictionary, key, value, details, dictionary->Hash(key));
|
| }
|
|
|
|
|
| @@ -16049,9 +16042,7 @@ Handle<SeededNumberDictionary> SeededNumberDictionary::AddNumberEntry(
|
| PropertyDetails details) {
|
| dictionary->UpdateMaxNumberKey(key);
|
| SLOW_ASSERT(dictionary->FindEntry(key) == kNotFound);
|
| - CALL_HEAP_FUNCTION(dictionary->GetIsolate(),
|
| - dictionary->Add(key, *value, details),
|
| - SeededNumberDictionary);
|
| + return Add(dictionary, key, value, details);
|
| }
|
|
|
|
|
| @@ -16060,10 +16051,7 @@ Handle<UnseededNumberDictionary> UnseededNumberDictionary::AddNumberEntry(
|
| uint32_t key,
|
| Handle<Object> value) {
|
| SLOW_ASSERT(dictionary->FindEntry(key) == kNotFound);
|
| - CALL_HEAP_FUNCTION(dictionary->GetIsolate(),
|
| - dictionary->Add(
|
| - key, *value, PropertyDetails(NONE, NORMAL, 0)),
|
| - UnseededNumberDictionary);
|
| + return Add(dictionary, key, value, PropertyDetails(NONE, NORMAL, 0));
|
| }
|
|
|
|
|
|
|