| Index: runtime/vm/ast.cc
|
| ===================================================================
|
| --- runtime/vm/ast.cc (revision 9315)
|
| +++ runtime/vm/ast.cc (working copy)
|
| @@ -83,15 +83,13 @@
|
| AstNode* LiteralNode::ApplyUnaryOp(Token::Kind unary_op_kind) {
|
| if (unary_op_kind == Token::kSUB) {
|
| if (literal().IsSmi()) {
|
| - Smi& smi = Smi::Handle();
|
| - smi ^= literal().raw();
|
| + const Smi& smi = Smi::Cast(literal());
|
| const Instance& literal =
|
| Instance::ZoneHandle(Integer::New(-smi.Value()));
|
| return new LiteralNode(this->token_pos(), literal);
|
| }
|
| if (literal().IsDouble()) {
|
| - Double& dbl = Double::Handle();
|
| - dbl ^= literal().raw();
|
| + const Double& dbl = Double::Cast(literal());
|
| // Preserve negative zero.
|
| double new_value = (dbl.value() == 0.0) ? -0.0 : (0.0 - dbl.value());
|
| Double& double_instance =
|
| @@ -376,9 +374,7 @@
|
| // replumbing all of the EvalConstExpr methods.
|
| return NULL;
|
| }
|
| - Instance& field_value = Instance::ZoneHandle();
|
| - field_value ^= result.raw();
|
| - return &field_value;
|
| + return &Instance::ZoneHandle(Instance::Cast(result).raw());
|
| }
|
|
|
| } // namespace dart
|
|
|