| Index: src/objects.cc
|
| diff --git a/src/objects.cc b/src/objects.cc
|
| index 0de3ac7ae3ee2a42fd37076513cb5449703730bf..a788361d561db40897ea4541f812d2b8f900af8b 100644
|
| --- a/src/objects.cc
|
| +++ b/src/objects.cc
|
| @@ -4630,7 +4630,7 @@ void JSObject::NormalizeProperties(Handle<JSObject> object,
|
| property_count += 2; // Make space for two more properties.
|
| }
|
| Handle<NameDictionary> dictionary =
|
| - isolate->factory()->NewNameDictionary(property_count);
|
| + NameDictionary::New(isolate, property_count);
|
|
|
| Handle<DescriptorArray> descs(map->instance_descriptors());
|
| for (int i = 0; i < real_size; i++) {
|
| @@ -4853,9 +4853,10 @@ void JSObject::TransformToFastProperties(Handle<JSObject> object,
|
| void JSObject::ResetElements(Handle<JSObject> object) {
|
| if (object->map()->is_observed()) {
|
| // Maintain invariant that observed elements are always in dictionary mode.
|
| - Factory* factory = object->GetIsolate()->factory();
|
| + Isolate* isolate = object->GetIsolate();
|
| + Factory* factory = isolate->factory();
|
| Handle<SeededNumberDictionary> dictionary =
|
| - factory->NewSeededNumberDictionary(0);
|
| + SeededNumberDictionary::New(isolate, 0);
|
| if (object->map() == *factory->sloppy_arguments_elements_map()) {
|
| FixedArray::cast(object->elements())->set(1, *dictionary);
|
| } else {
|
| @@ -4910,7 +4911,6 @@ Handle<SeededNumberDictionary> JSObject::NormalizeElements(
|
| ASSERT(!object->HasExternalArrayElements() &&
|
| !object->HasFixedTypedArrayElements());
|
| Isolate* isolate = object->GetIsolate();
|
| - Factory* factory = isolate->factory();
|
|
|
| // Find the backing store.
|
| Handle<FixedArrayBase> array(FixedArrayBase::cast(object->elements()));
|
| @@ -4933,7 +4933,7 @@ Handle<SeededNumberDictionary> JSObject::NormalizeElements(
|
| int used_elements = 0;
|
| object->GetElementsCapacityAndUsage(&old_capacity, &used_elements);
|
| Handle<SeededNumberDictionary> dictionary =
|
| - factory->NewSeededNumberDictionary(used_elements);
|
| + SeededNumberDictionary::New(isolate, used_elements);
|
|
|
| dictionary = CopyFastElementsToDictionary(array, length, dictionary);
|
|
|
| @@ -5746,8 +5746,7 @@ MaybeHandle<Object> JSObject::Freeze(Handle<JSObject> object) {
|
| int capacity = 0;
|
| int used = 0;
|
| object->GetElementsCapacityAndUsage(&capacity, &used);
|
| - new_element_dictionary =
|
| - isolate->factory()->NewSeededNumberDictionary(used);
|
| + new_element_dictionary = SeededNumberDictionary::New(isolate, used);
|
|
|
| // Move elements to a dictionary; avoid calling NormalizeElements to avoid
|
| // unnecessary transitions.
|
| @@ -14884,20 +14883,17 @@ template class Dictionary<UnseededNumberDictionary,
|
| UnseededNumberDictionaryShape,
|
| uint32_t>;
|
|
|
| -template MaybeObject*
|
| +template Handle<SeededNumberDictionary>
|
| Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
|
| - Allocate(Heap* heap, int at_least_space_for, PretenureFlag pretenure);
|
| + New(Isolate*, int at_least_space_for, PretenureFlag pretenure);
|
|
|
| -template MaybeObject*
|
| +template Handle<UnseededNumberDictionary>
|
| Dictionary<UnseededNumberDictionary, UnseededNumberDictionaryShape, uint32_t>::
|
| - Allocate(Heap* heap, int at_least_space_for, PretenureFlag pretenure);
|
| -
|
| -template MaybeObject* Dictionary<NameDictionary, NameDictionaryShape, Name*>::
|
| - Allocate(Heap* heap, int n, PretenureFlag pretenure);
|
| + New(Isolate*, int at_least_space_for, PretenureFlag pretenure);
|
|
|
| template Handle<NameDictionary>
|
| Dictionary<NameDictionary, NameDictionaryShape, Name*>::
|
| - New(Isolate* isolate, int n, PretenureFlag pretenure);
|
| + New(Isolate*, int n, PretenureFlag pretenure);
|
|
|
| template Handle<SeededNumberDictionary>
|
| Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>::
|
| @@ -15046,7 +15042,7 @@ Handle<Object> JSObject::PrepareSlowElementsForSort(
|
| // elements.
|
| Handle<SeededNumberDictionary> dict(object->element_dictionary(), isolate);
|
| Handle<SeededNumberDictionary> new_dict =
|
| - isolate->factory()->NewSeededNumberDictionary(dict->NumberOfElements());
|
| + SeededNumberDictionary::New(isolate, dict->NumberOfElements());
|
|
|
| uint32_t pos = 0;
|
| uint32_t undefs = 0;
|
| @@ -15777,31 +15773,11 @@ Handle<MapCache> MapCache::Put(
|
|
|
|
|
| template<typename Derived, typename Shape, typename Key>
|
| -MaybeObject* Dictionary<Derived, Shape, Key>::Allocate(
|
| - Heap* heap,
|
| - int at_least_space_for,
|
| - PretenureFlag pretenure) {
|
| - Object* obj;
|
| - { MaybeObject* maybe_obj =
|
| - DerivedHashTable::Allocate(
|
| - heap,
|
| - at_least_space_for,
|
| - USE_DEFAULT_MINIMUM_CAPACITY,
|
| - pretenure);
|
| - if (!maybe_obj->ToObject(&obj)) return maybe_obj;
|
| - }
|
| - // Initialize the next enumeration index.
|
| - Dictionary::cast(obj)->
|
| - SetNextEnumerationIndex(PropertyDetails::kInitialIndex);
|
| - return obj;
|
| -}
|
| -
|
| -
|
| -template<typename Derived, typename Shape, typename Key>
|
| Handle<Derived> Dictionary<Derived, Shape, Key>::New(
|
| Isolate* isolate,
|
| int at_least_space_for,
|
| PretenureFlag pretenure) {
|
| + ASSERT(0 <= at_least_space_for);
|
| Handle<Derived> dict = DerivedHashTable::New(isolate,
|
| at_least_space_for,
|
| USE_DEFAULT_MINIMUM_CAPACITY,
|
|
|