Index: runtime/vm/flow_graph_optimizer.cc |
=================================================================== |
--- runtime/vm/flow_graph_optimizer.cc (revision 28998) |
+++ runtime/vm/flow_graph_optimizer.cc (working copy) |
@@ -4320,8 +4320,12 @@ |
private: |
static Definition* OriginalDefinition(Definition* defn) { |
- while (defn->IsRedefinition()) { |
- defn = defn->AsRedefinition()->value()->definition(); |
+ while (defn->IsRedefinition() || defn->IsAssertAssignable()) { |
+ if (defn->IsRedefinition()) { |
+ defn = defn->AsRedefinition()->value()->definition(); |
+ } else { |
+ defn = defn->AsAssertAssignable()->value()->definition(); |
+ } |
} |
return defn; |
} |
@@ -4539,8 +4543,10 @@ |
if (instr->IsPushArgument() || |
(instr->IsStoreVMField() && (use->use_index() != 1)) || |
(instr->IsStoreInstanceField() && (use->use_index() != 0)) || |
- (instr->IsStoreStaticField()) || |
- (instr->IsPhi())) { |
+ instr->IsStoreStaticField() || |
+ instr->IsPhi() || |
+ instr->IsAssertAssignable() || |
+ instr->IsRedefinition()) { |
escapes = true; |
break; |
} |