| Index: src/mips/lithium-mips.cc
|
| diff --git a/src/mips/lithium-mips.cc b/src/mips/lithium-mips.cc
|
| index 1eb3ab7a0ed5bf671845c947e0391719670b921b..a5e000b2d621158d43d47e5c93e502c805a188a6 100644
|
| --- a/src/mips/lithium-mips.cc
|
| +++ b/src/mips/lithium-mips.cc
|
| @@ -2023,8 +2023,12 @@ LInstruction* LChunkBuilder::DoStoreKeyedGeneric(HStoreKeyedGeneric* instr) {
|
|
|
| LInstruction* LChunkBuilder::DoTransitionElementsKind(
|
| HTransitionElementsKind* instr) {
|
| - if (instr->original_map()->elements_kind() == FAST_SMI_ONLY_ELEMENTS &&
|
| - instr->transitioned_map()->elements_kind() == FAST_ELEMENTS) {
|
| + ElementsKind from_kind = instr->original_map()->elements_kind();
|
| + ElementsKind to_kind = instr->transitioned_map()->elements_kind();
|
| + bool simple_map_change = (GetHoleyElementsKind(from_kind) == to_kind) ||
|
| + (IsFastSmiElementsKind(from_kind) &&
|
| + IsFastObjectElementsKind(to_kind));
|
| + if (simple_map_change) {
|
| LOperand* object = UseRegister(instr->object());
|
| LOperand* new_map_reg = TempRegister();
|
| LTransitionElementsKind* result =
|
|
|