Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index a788361d561db40897ea4541f812d2b8f900af8b..ca3a9feeba82c1c571abc7446dd667d65a5ecfe7 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -725,7 +725,8 @@ Handle<Object> JSObject::DeleteNormalizedProperty(Handle<JSObject> object, |
PropertyCell::SetValueInferType(cell, value); |
dictionary->DetailsAtPut(entry, details.AsDeleted()); |
} else { |
- Handle<Object> deleted(dictionary->DeleteProperty(entry, mode), isolate); |
+ Handle<Object> deleted( |
+ NameDictionary::DeleteProperty(dictionary, entry, mode)); |
if (*deleted == isolate->heap()->true_value()) { |
Handle<NameDictionary> new_properties = |
NameDictionary::Shrink(dictionary, *name); |
@@ -14924,28 +14925,13 @@ Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>:: |
SeededNumberDictionaryShape, |
uint32_t>::SortMode); |
-template Object* |
-Dictionary<NameDictionary, NameDictionaryShape, Name*>::DeleteProperty( |
- int, JSObject::DeleteMode); |
- |
template Handle<Object> |
Dictionary<NameDictionary, NameDictionaryShape, Name*>::DeleteProperty( |
- Handle<Dictionary<NameDictionary, NameDictionaryShape, Name*> >, |
- int, |
- JSObject::DeleteMode); |
- |
-template Object* |
-Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>:: |
- DeleteProperty(int, JSObject::DeleteMode); |
+ Handle<NameDictionary>, int, JSObject::DeleteMode); |
template Handle<Object> |
Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, uint32_t>:: |
- DeleteProperty( |
- Handle<Dictionary<SeededNumberDictionary, |
- SeededNumberDictionaryShape, |
- uint32_t> >, |
- int, |
- JSObject::DeleteMode); |
+ DeleteProperty(Handle<SeededNumberDictionary>, int, JSObject::DeleteMode); |
template Handle<NameDictionary> |
HashTable<NameDictionary, NameDictionaryShape, Name*>:: |
@@ -15855,31 +15841,21 @@ Handle<Derived> Dictionary<Derived, Shape, Key>::EnsureCapacity( |
} |
-// TODO(ishell): Temporary wrapper until handlified. |
template<typename Derived, typename Shape, typename Key> |
Handle<Object> Dictionary<Derived, Shape, Key>::DeleteProperty( |
- Handle<Dictionary<Derived, Shape, Key> > dictionary, |
+ Handle<Derived> dictionary, |
int entry, |
JSObject::DeleteMode mode) { |
- CALL_HEAP_FUNCTION(dictionary->GetIsolate(), |
- dictionary->DeleteProperty(entry, mode), |
- Object); |
-} |
- |
- |
-template<typename Derived, typename Shape, typename Key> |
-Object* Dictionary<Derived, Shape, Key>::DeleteProperty( |
- int entry, |
- JSReceiver::DeleteMode mode) { |
- Heap* heap = Dictionary::GetHeap(); |
- PropertyDetails details = DetailsAt(entry); |
+ Factory* factory = dictionary->GetIsolate()->factory(); |
+ PropertyDetails details = dictionary->DetailsAt(entry); |
// Ignore attributes if forcing a deletion. |
if (details.IsDontDelete() && mode != JSReceiver::FORCE_DELETION) { |
- return heap->false_value(); |
+ return factory->false_value(); |
} |
- SetEntry(entry, heap->the_hole_value(), heap->the_hole_value()); |
- DerivedHashTable::ElementRemoved(); |
- return heap->true_value(); |
+ dictionary->SetEntry( |
+ entry, *factory->the_hole_value(), *factory->the_hole_value()); |
+ dictionary->ElementRemoved(); |
+ return factory->true_value(); |
} |