Index: src/ic.cc |
diff --git a/src/ic.cc b/src/ic.cc |
index 09e9f0f9a9e7d6433e71fe45a01281780e25f5b4..30a877760606044bd08729fd71318e46f12eafc3 100644 |
--- a/src/ic.cc |
+++ b/src/ic.cc |
@@ -1735,49 +1735,6 @@ MaybeObject* KeyedStoreIC::GetElementStubWithoutMapCheck( |
} |
-// If |map| is contained in |maps_list|, returns |map|; otherwise returns NULL. |
-Map* GetMapIfPresent(Map* map, MapList* maps_list) { |
- for (int i = 0; i < maps_list->length(); ++i) { |
- if (maps_list->at(i) == map) return map; |
- } |
- return NULL; |
-} |
- |
- |
-// Returns the most generic transitioned map for |map| that's found in |
-// |maps_list|, or NULL if no transitioned map for |map| is found at all. |
-Map* GetTransitionedMap(Map* map, MapList* maps_list) { |
- ElementsKind elements_kind = map->elements_kind(); |
- if (elements_kind == FAST_ELEMENTS) { |
- return NULL; |
- } |
- if (elements_kind == FAST_DOUBLE_ELEMENTS) { |
- bool dummy = true; |
- Map* fast_map = map->LookupElementsTransitionMap(FAST_ELEMENTS, &dummy); |
- if (fast_map == NULL) return NULL; |
- return GetMapIfPresent(fast_map, maps_list); |
- } |
- if (elements_kind == FAST_SMI_ONLY_ELEMENTS) { |
- bool dummy = true; |
- Map* double_map = map->LookupElementsTransitionMap(FAST_DOUBLE_ELEMENTS, |
- &dummy); |
- // In the current implementation, if the DOUBLE map doesn't exist, the |
- // FAST map can't exist either. |
- if (double_map == NULL) return NULL; |
- Map* fast_map = map->LookupElementsTransitionMap(FAST_ELEMENTS, &dummy); |
- if (fast_map == NULL) { |
- return GetMapIfPresent(double_map, maps_list); |
- } |
- // Both double_map and fast_map are non-NULL. Return fast_map if it's in |
- // maps_list, double_map otherwise. |
- Map* fast_map_present = GetMapIfPresent(fast_map, maps_list); |
- if (fast_map_present != NULL) return fast_map_present; |
- return GetMapIfPresent(double_map, maps_list); |
- } |
- return NULL; |
-} |
- |
- |
MaybeObject* KeyedStoreIC::ComputePolymorphicStub( |
MapList* receiver_maps, |
StrictModeFlag strict_mode) { |
@@ -1787,7 +1744,7 @@ MaybeObject* KeyedStoreIC::ComputePolymorphicStub( |
for (int i = 0; i < receiver_maps->length(); ++i) { |
Map* receiver_map(receiver_maps->at(i)); |
MaybeObject* maybe_cached_stub = NULL; |
- Map* transitioned_map = GetTransitionedMap(receiver_map, receiver_maps); |
+ Map* transitioned_map = receiver_map->FindTransitionedMap(receiver_maps); |
if (transitioned_map != NULL) { |
maybe_cached_stub = FastElementsConversionStub( |
receiver_map->elements_kind(), // original elements_kind |