Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index c382547d0ebcbffe7cc9709482e5b07c88012899..5049bc949906d171701d28f599192fe8849b25fb 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -17487,9 +17487,6 @@ template Handle<NameDictionary> |
Dictionary<NameDictionary, NameDictionaryShape, Handle<Name> >:: |
EnsureCapacity(Handle<NameDictionary>, int, Handle<Name>); |
-template bool Dictionary<SeededNumberDictionary, SeededNumberDictionaryShape, |
- uint32_t>::HasComplexElements(); |
- |
template int HashTable<SeededNumberDictionary, SeededNumberDictionaryShape, |
uint32_t>::FindEntry(uint32_t); |
@@ -18330,6 +18327,21 @@ void Dictionary<Derived, Shape, Key>::AddEntry( |
dictionary->ElementAdded(); |
} |
+bool SeededNumberDictionary::HasComplexElements() { |
+ if (!requires_slow_elements()) return false; |
+ int capacity = this->Capacity(); |
+ for (int i = 0; i < capacity; i++) { |
+ Object* k = this->KeyAt(i); |
+ if (this->IsKey(k)) { |
+ DCHECK(!IsDeleted(i)); |
+ PropertyDetails details = this->DetailsAt(i); |
+ if (details.type() == ACCESSOR_CONSTANT) return true; |
+ PropertyAttributes attr = details.attributes(); |
+ if (attr & ALL_ATTRIBUTES_MASK) return true; |
+ } |
+ } |
+ return false; |
+} |
void SeededNumberDictionary::UpdateMaxNumberKey(uint32_t key, |
bool used_as_prototype) { |
@@ -18437,23 +18449,6 @@ int Dictionary<Derived, Shape, Key>::NumberOfElementsFilterAttributes( |
} |
-template <typename Derived, typename Shape, typename Key> |
-bool Dictionary<Derived, Shape, Key>::HasComplexElements() { |
- int capacity = this->Capacity(); |
- for (int i = 0; i < capacity; i++) { |
- Object* k = this->KeyAt(i); |
- if (this->IsKey(k) && !k->FilterKey(ALL_PROPERTIES)) { |
- if (this->IsDeleted(i)) continue; |
- PropertyDetails details = this->DetailsAt(i); |
- if (details.type() == ACCESSOR_CONSTANT) return true; |
- PropertyAttributes attr = details.attributes(); |
- if (attr & ALL_ATTRIBUTES_MASK) return true; |
- } |
- } |
- return false; |
-} |
- |
- |
template <typename Dictionary> |
struct EnumIndexComparator { |
explicit EnumIndexComparator(Dictionary* dict) : dict(dict) {} |