| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "vm/flow_graph_builder.h" | 5 #include "vm/flow_graph_builder.h" |
| 6 | 6 |
| 7 #include "lib/invocation_mirror.h" | 7 #include "lib/invocation_mirror.h" |
| 8 #include "vm/ast_printer.h" | 8 #include "vm/ast_printer.h" |
| 9 #include "vm/bit_vector.h" | 9 #include "vm/bit_vector.h" |
| 10 #include "vm/class_finalizer.h" | 10 #include "vm/class_finalizer.h" |
| (...skipping 1436 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1447 Value* instantiator = NULL; | 1447 Value* instantiator = NULL; |
| 1448 Value* instantiator_type_arguments = NULL; | 1448 Value* instantiator_type_arguments = NULL; |
| 1449 if (dst_type.IsInstantiated()) { | 1449 if (dst_type.IsInstantiated()) { |
| 1450 instantiator = BuildNullValue(); | 1450 instantiator = BuildNullValue(); |
| 1451 instantiator_type_arguments = BuildNullValue(); | 1451 instantiator_type_arguments = BuildNullValue(); |
| 1452 } else { | 1452 } else { |
| 1453 BuildTypecheckArguments(token_pos, | 1453 BuildTypecheckArguments(token_pos, |
| 1454 &instantiator, | 1454 &instantiator, |
| 1455 &instantiator_type_arguments); | 1455 &instantiator_type_arguments); |
| 1456 } | 1456 } |
| 1457 |
| 1458 const intptr_t deopt_id = Isolate::Current()->GetNextDeoptId(); |
| 1457 return new(I) AssertAssignableInstr(token_pos, | 1459 return new(I) AssertAssignableInstr(token_pos, |
| 1458 value, | 1460 value, |
| 1459 instantiator, | 1461 instantiator, |
| 1460 instantiator_type_arguments, | 1462 instantiator_type_arguments, |
| 1461 dst_type, | 1463 dst_type, |
| 1462 dst_name); | 1464 dst_name, |
| 1465 deopt_id); |
| 1463 } | 1466 } |
| 1464 | 1467 |
| 1465 | 1468 |
| 1466 void EffectGraphVisitor::BuildAwaitJump(LocalVariable* old_context, | 1469 void EffectGraphVisitor::BuildAwaitJump(LocalVariable* old_context, |
| 1467 LocalVariable* continuation_result, | 1470 LocalVariable* continuation_result, |
| 1468 LocalVariable* continuation_error, | 1471 LocalVariable* continuation_error, |
| 1469 const intptr_t old_ctx_level, | 1472 const intptr_t old_ctx_level, |
| 1470 JoinEntryInstr* target) { | 1473 JoinEntryInstr* target) { |
| 1471 // Building a jump consists of the following actions: | 1474 // Building a jump consists of the following actions: |
| 1472 // * Record the current continuation result in a temporary. | 1475 // * Record the current continuation result in a temporary. |
| (...skipping 2815 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4288 Report::MessageF(Report::kBailout, | 4291 Report::MessageF(Report::kBailout, |
| 4289 Script::Handle(function.script()), | 4292 Script::Handle(function.script()), |
| 4290 function.token_pos(), | 4293 function.token_pos(), |
| 4291 "FlowGraphBuilder Bailout: %s %s", | 4294 "FlowGraphBuilder Bailout: %s %s", |
| 4292 String::Handle(function.name()).ToCString(), | 4295 String::Handle(function.name()).ToCString(), |
| 4293 reason); | 4296 reason); |
| 4294 UNREACHABLE(); | 4297 UNREACHABLE(); |
| 4295 } | 4298 } |
| 4296 | 4299 |
| 4297 } // namespace dart | 4300 } // namespace dart |
| OLD | NEW |