| 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;
 | 
|          }
 | 
| 
 |