Index: src/hydrogen-load-elimination.cc |
diff --git a/src/hydrogen-load-elimination.cc b/src/hydrogen-load-elimination.cc |
index 6967630b57cd4e25c8ddf27ae65e483845821996..1198d2b7ab59afeb6318745c0cf45fcf440138bf 100644 |
--- a/src/hydrogen-load-elimination.cc |
+++ b/src/hydrogen-load-elimination.cc |
@@ -240,7 +240,12 @@ class HLoadEliminationTable : public ZoneObject { |
HValue* object = instr->object()->ActualValue(); |
HValue* value = instr->value(); |
- if (instr->store_mode() == STORE_TO_INITIALIZED_ENTRY) { |
+ if (instr->has_transition()) { |
+ // A transition introduces a new field and alters the map of the object. |
+ // Since the field in the object is new, it cannot alias existing entries. |
+ // TODO(titzer): introduce a constant for the new map and remember it. |
+ KillFieldInternal(object, FieldOf(JSObject::kMapOffset), NULL); |
+ } else { |
// Kill non-equivalent may-alias entries. |
KillFieldInternal(object, field, value); |
} |