Index: runtime/vm/intermediate_language.cc |
diff --git a/runtime/vm/intermediate_language.cc b/runtime/vm/intermediate_language.cc |
index 7f4a862d317a2557328a3d2f18d630ac96b8f64d..e70d96b97d5264a49ef9d0aad6bfc2444e503b57 100644 |
--- a/runtime/vm/intermediate_language.cc |
+++ b/runtime/vm/intermediate_language.cc |
@@ -1683,13 +1683,15 @@ RawInteger* BinaryIntegerOpInstr::Evaluate(const Integer& left, |
case Token::kSHL: |
case Token::kSHR: |
if (left.IsSmi() && right.IsSmi() && (Smi::Cast(right).Value() >= 0)) { |
- result = Smi::Cast(left).ShiftOp(op_kind(), Smi::Cast(right)); |
+ result = Smi::Cast(left).ShiftOp(op_kind(), |
+ Smi::Cast(right), |
+ Heap::kOld); |
} |
break; |
case Token::kBIT_AND: |
case Token::kBIT_OR: |
case Token::kBIT_XOR: { |
- result = left.BitOp(op_kind(), right); |
+ result = left.BitOp(op_kind(), right, Heap::kOld); |
break; |
} |
case Token::kDIV: |
@@ -3459,7 +3461,7 @@ Definition* StringInterpolateInstr::Canonicalize(FlowGraph* flow_graph) { |
pieces.SetAt(store_index, String::Cast(obj)); |
} else if (obj.IsSmi()) { |
const char* cstr = obj.ToCString(); |
- pieces.SetAt(store_index, String::Handle(zone, String::New(cstr))); |
+ pieces.SetAt(store_index, String::Handle(zone, Symbols::New(cstr))); |
} else if (obj.IsBool()) { |
pieces.SetAt(store_index, |
Bool::Cast(obj).value() ? Symbols::True() : Symbols::False()); |