Index: src/hydrogen-escape-analysis.cc |
diff --git a/src/hydrogen-escape-analysis.cc b/src/hydrogen-escape-analysis.cc |
index 9f4ee6cbec0d59b938e2ac0d8ecce5346bd502b9..4eb2a13726a4dd5dd0bd84bfdfbaedfc1ba12a6d 100644 |
--- a/src/hydrogen-escape-analysis.cc |
+++ b/src/hydrogen-escape-analysis.cc |
@@ -206,12 +206,16 @@ void HEscapeAnalysisPhase::AnalyzeDataFlow(HInstruction* allocate) { |
ASSERT(store->access().IsInobject()); |
state = NewStateCopy(store->previous(), state); |
state->SetOperandAt(index, store->value()); |
+ if (store->has_transition()) { |
+ state->SetOperandAt(0, store->transition()); |
+ } |
if (store->HasObservableSideEffects()) { |
state->ReuseSideEffectsFromStore(store); |
} |
store->DeleteAndReplaceWith(store->ActualValue()); |
if (FLAG_trace_escape_analysis) { |
- PrintF("Replacing store #%d\n", instr->id()); |
+ PrintF("Replacing store #%d%s\n", instr->id(), |
+ store->has_transition() ? " (with transition)" : ""); |
} |
break; |
} |