Index: src/objects-inl.h |
diff --git a/src/objects-inl.h b/src/objects-inl.h |
index 3300df0777f72ea0edfac1e8db445bd92e500d5e..c741ce34e132ad255a944f3a30110e88863cba0d 100644 |
--- a/src/objects-inl.h |
+++ b/src/objects-inl.h |
@@ -1901,11 +1901,11 @@ Handle<Map> Map::FindTransitionToField(Handle<Map> map, Handle<Name> key) { |
DisallowHeapAllocation no_allocation; |
if (!map->HasTransitionArray()) return Handle<Map>::null(); |
TransitionArray* transitions = map->transitions(); |
- int transition = transitions->Search(FIELD, *key, NONE); |
+ int transition = transitions->Search(*key); |
if (transition == TransitionArray::kNotFound) return Handle<Map>::null(); |
- PropertyDetails details = transitions->GetTargetDetails(transition); |
- if (details.type() != FIELD) return Handle<Map>::null(); |
- DCHECK_EQ(NONE, details.attributes()); |
+ PropertyDetails target_details = transitions->GetTargetDetails(transition); |
+ if (target_details.type() != FIELD) return Handle<Map>::null(); |
+ if (target_details.attributes() != NONE) return Handle<Map>::null(); |
return Handle<Map>(transitions->GetTarget(transition)); |
} |
@@ -2995,10 +2995,8 @@ void Map::LookupDescriptor(JSObject* holder, |
} |
-void Map::LookupTransition(JSObject* holder, Name* name, |
- PropertyAttributes attributes, |
- LookupResult* result) { |
- int transition_index = this->SearchTransition(FIELD, name, attributes); |
+void Map::LookupTransition(JSObject* holder, Name* name, LookupResult* result) { |
+ int transition_index = this->SearchTransition(name); |
if (transition_index == TransitionArray::kNotFound) return result->NotFound(); |
result->TransitionResult(holder, this->GetTransition(transition_index)); |
} |
@@ -5320,8 +5318,7 @@ bool Map::HasTransitionArray() const { |
Map* Map::elements_transition_map() { |
- int index = |
- transitions()->SearchSpecial(GetHeap()->elements_transition_symbol()); |
+ int index = transitions()->Search(GetHeap()->elements_transition_symbol()); |
return transitions()->GetTarget(index); |
} |
@@ -5338,19 +5335,8 @@ Map* Map::GetTransition(int transition_index) { |
} |
-int Map::SearchSpecialTransition(Symbol* name) { |
- if (HasTransitionArray()) { |
- return transitions()->SearchSpecial(name); |
- } |
- return TransitionArray::kNotFound; |
-} |
- |
- |
-int Map::SearchTransition(PropertyType type, Name* name, |
- PropertyAttributes attributes) { |
- if (HasTransitionArray()) { |
- return transitions()->Search(type, name, attributes); |
- } |
+int Map::SearchTransition(Name* name) { |
+ if (HasTransitionArray()) return transitions()->Search(name); |
return TransitionArray::kNotFound; |
} |
@@ -5401,17 +5387,9 @@ void Map::set_transitions(TransitionArray* transition_array, |
Map* target = transitions()->GetTarget(i); |
if (target->instance_descriptors() == instance_descriptors()) { |
Name* key = transitions()->GetKey(i); |
- int new_target_index; |
- if (TransitionArray::IsSpecialTransition(key)) { |
- new_target_index = transition_array->SearchSpecial(Symbol::cast(key)); |
- } else { |
- PropertyDetails details = |
- TransitionArray::GetTargetDetails(key, target); |
- new_target_index = transition_array->Search(details.type(), key, |
- details.attributes()); |
- } |
- DCHECK_NE(TransitionArray::kNotFound, new_target_index); |
- DCHECK_EQ(target, transition_array->GetTarget(new_target_index)); |
+ int new_target_index = transition_array->Search(key); |
+ DCHECK(new_target_index != TransitionArray::kNotFound); |
+ DCHECK(transition_array->GetTarget(new_target_index) == target); |
} |
} |
#endif |