| Index: runtime/vm/constant_propagator.cc | 
| diff --git a/runtime/vm/constant_propagator.cc b/runtime/vm/constant_propagator.cc | 
| index 37e81b605e6bafcae6e9a4be332a3a62eb222eaa..6ccc307e2ee532ea554ffcf4ba4920feea067d42 100644 | 
| --- a/runtime/vm/constant_propagator.cc | 
| +++ b/runtime/vm/constant_propagator.cc | 
| @@ -1020,7 +1020,7 @@ void ConstantPropagator::VisitSmiToDouble(SmiToDoubleInstr* instr) { | 
| if (IsConstant(value) && value.IsInteger()) { | 
| SetValue(instr, Double::Handle(I, | 
| Double::New(Integer::Cast(value).AsDoubleValue(), Heap::kOld))); | 
| -  } else if (IsNonConstant(value)) { | 
| +  } else if (!IsUnknown(value)) { | 
| SetValue(instr, non_constant_); | 
| } | 
| } | 
| @@ -1031,7 +1031,7 @@ void ConstantPropagator::VisitMintToDouble(MintToDoubleInstr* instr) { | 
| if (IsConstant(value) && value.IsInteger()) { | 
| SetValue(instr, Double::Handle(I, | 
| Double::New(Integer::Cast(value).AsDoubleValue(), Heap::kOld))); | 
| -  } else if (IsNonConstant(value)) { | 
| +  } else if (!IsUnknown(value)) { | 
| SetValue(instr, non_constant_); | 
| } | 
| } | 
| @@ -1042,7 +1042,7 @@ void ConstantPropagator::VisitInt32ToDouble(Int32ToDoubleInstr* instr) { | 
| if (IsConstant(value) && value.IsInteger()) { | 
| SetValue(instr, Double::Handle(I, | 
| Double::New(Integer::Cast(value).AsDoubleValue(), Heap::kOld))); | 
| -  } else if (IsNonConstant(value)) { | 
| +  } else if (!IsUnknown(value)) { | 
| SetValue(instr, non_constant_); | 
| } | 
| } | 
|  |