Index: src/ic/ic.cc |
diff --git a/src/ic/ic.cc b/src/ic/ic.cc |
index 3388618a754168e1c05730aea98177cbac36ff0c..9aa57739b506ca3c84754d267b0341f090fe1f7a 100644 |
--- a/src/ic/ic.cc |
+++ b/src/ic/ic.cc |
@@ -1953,7 +1953,8 @@ |
if (store_mode != STANDARD_STORE) { |
int external_arrays = 0; |
for (int i = 0; i < target_receiver_maps.length(); ++i) { |
- if (target_receiver_maps[i]->has_fixed_typed_array_elements()) { |
+ if (target_receiver_maps[i]->has_external_array_elements() || |
+ target_receiver_maps[i]->has_fixed_typed_array_elements()) { |
external_arrays++; |
} |
} |
@@ -1990,7 +1991,7 @@ |
case STORE_AND_GROW_TRANSITION_HOLEY_SMI_TO_DOUBLE: |
return Map::TransitionElementsTo(map, FAST_HOLEY_DOUBLE_ELEMENTS); |
case STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS: |
- DCHECK(map->has_fixed_typed_array_elements()); |
+ DCHECK(map->has_external_array_elements()); |
// Fall through |
case STORE_NO_TRANSITION_HANDLE_COW: |
case STANDARD_STORE: |
@@ -2073,7 +2074,7 @@ |
} |
} |
if (!FLAG_trace_external_array_abuse && |
- receiver->map()->has_fixed_typed_array_elements() && oob_access) { |
+ receiver->map()->has_external_array_elements() && oob_access) { |
return STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS; |
} |
Heap* heap = receiver->GetHeap(); |