| Index: src/objects.cc | 
| diff --git a/src/objects.cc b/src/objects.cc | 
| index ba894e9f317d63b13dd88172b76057bca196f756..e6c9b66ce3ec1b330de327b3cd1315800295ea57 100644 | 
| --- a/src/objects.cc | 
| +++ b/src/objects.cc | 
| @@ -14243,39 +14243,36 @@ PropertyCell* GlobalObject::GetPropertyCell(LookupResult* result) { | 
| } | 
|  | 
|  | 
| -Handle<PropertyCell> GlobalObject::EnsurePropertyCell( | 
| -    Handle<GlobalObject> global, | 
| -    Handle<Name> name) { | 
| -  Isolate* isolate = global->GetIsolate(); | 
| -  CALL_HEAP_FUNCTION(isolate, | 
| -                     global->EnsurePropertyCell(*name), | 
| -                     PropertyCell); | 
| +// TODO(mstarzinger): Temporary wrapper until handlified. | 
| +static Handle<NameDictionary> NameDictionaryAdd(Handle<NameDictionary> dict, | 
| +                                                Handle<Name> name, | 
| +                                                Handle<Object> value, | 
| +                                                PropertyDetails details) { | 
| +  CALL_HEAP_FUNCTION(dict->GetIsolate(), | 
| +                     dict->Add(*name, *value, details), | 
| +                     NameDictionary); | 
| } | 
|  | 
|  | 
| -MaybeObject* GlobalObject::EnsurePropertyCell(Name* name) { | 
| -  ASSERT(!HasFastProperties()); | 
| -  int entry = property_dictionary()->FindEntry(name); | 
| +Handle<PropertyCell> GlobalObject::EnsurePropertyCell( | 
| +    Handle<GlobalObject> global, | 
| +    Handle<Name> name) { | 
| +  ASSERT(!global->HasFastProperties()); | 
| +  int entry = global->property_dictionary()->FindEntry(*name); | 
| if (entry == NameDictionary::kNotFound) { | 
| -    Heap* heap = GetHeap(); | 
| -    Object* cell; | 
| -    { MaybeObject* maybe_cell = | 
| -          heap->AllocatePropertyCell(heap->the_hole_value()); | 
| -      if (!maybe_cell->ToObject(&cell)) return maybe_cell; | 
| -    } | 
| +    Isolate* isolate = global->GetIsolate(); | 
| +    Handle<PropertyCell> cell = isolate->factory()->NewPropertyCell( | 
| +        isolate->factory()->the_hole_value()); | 
| PropertyDetails details(NONE, NORMAL, 0); | 
| details = details.AsDeleted(); | 
| -    Object* dictionary; | 
| -    { MaybeObject* maybe_dictionary = | 
| -          property_dictionary()->Add(name, cell, details); | 
| -      if (!maybe_dictionary->ToObject(&dictionary)) return maybe_dictionary; | 
| -    } | 
| -    set_properties(NameDictionary::cast(dictionary)); | 
| +    Handle<NameDictionary> dictionary = NameDictionaryAdd( | 
| +        handle(global->property_dictionary()), name, cell, details); | 
| +    global->set_properties(*dictionary); | 
| return cell; | 
| } else { | 
| -    Object* value = property_dictionary()->ValueAt(entry); | 
| +    Object* value = global->property_dictionary()->ValueAt(entry); | 
| ASSERT(value->IsPropertyCell()); | 
| -    return value; | 
| +    return handle(PropertyCell::cast(value)); | 
| } | 
| } | 
|  | 
|  |