| 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 3740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3751 LocalVariable* temp = NULL; | 3751 LocalVariable* temp = NULL; |
| 3752 if (save_last_arg) { | 3752 if (save_last_arg) { |
| 3753 temp = owner()->parsed_function()->EnsureExpressionTemp(); | 3753 temp = owner()->parsed_function()->EnsureExpressionTemp(); |
| 3754 } | 3754 } |
| 3755 ArgumentListNode* args = | 3755 ArgumentListNode* args = |
| 3756 Parser::BuildNoSuchMethodArguments(args_pos, | 3756 Parser::BuildNoSuchMethodArguments(args_pos, |
| 3757 method_name, | 3757 method_name, |
| 3758 *method_arguments, | 3758 *method_arguments, |
| 3759 temp, | 3759 temp, |
| 3760 is_super_invocation); | 3760 is_super_invocation); |
| 3761 const Function& no_such_method_func = Function::ZoneHandle( | 3761 const Function& no_such_method_func = Function::ZoneHandle(I, |
| 3762 I, | |
| 3763 Resolver::ResolveDynamicAnyArgs(target_class, Symbols::NoSuchMethod())); | 3762 Resolver::ResolveDynamicAnyArgs(target_class, Symbols::NoSuchMethod())); |
| 3764 // We are guaranteed to find noSuchMethod of class Object. | 3763 // We are guaranteed to find noSuchMethod of class Object. |
| 3765 ASSERT(!no_such_method_func.IsNull()); | 3764 ASSERT(!no_such_method_func.IsNull()); |
| 3766 ZoneGrowableArray<PushArgumentInstr*>* push_arguments = | 3765 ZoneGrowableArray<PushArgumentInstr*>* push_arguments = |
| 3767 new(I) ZoneGrowableArray<PushArgumentInstr*>(2); | 3766 new(I) ZoneGrowableArray<PushArgumentInstr*>(2); |
| 3768 BuildPushArguments(*args, push_arguments); | 3767 BuildPushArguments(*args, push_arguments); |
| 3769 return new(I) StaticCallInstr(args_pos, | 3768 return new(I) StaticCallInstr(args_pos, |
| 3770 no_such_method_func, | 3769 no_such_method_func, |
| 3771 Object::null_array(), | 3770 Object::null_array(), |
| 3772 push_arguments, | 3771 push_arguments, |
| (...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3961 Report::MessageF(Report::kBailout, | 3960 Report::MessageF(Report::kBailout, |
| 3962 Script::Handle(function.script()), | 3961 Script::Handle(function.script()), |
| 3963 function.token_pos(), | 3962 function.token_pos(), |
| 3964 "FlowGraphBuilder Bailout: %s %s", | 3963 "FlowGraphBuilder Bailout: %s %s", |
| 3965 String::Handle(function.name()).ToCString(), | 3964 String::Handle(function.name()).ToCString(), |
| 3966 reason); | 3965 reason); |
| 3967 UNREACHABLE(); | 3966 UNREACHABLE(); |
| 3968 } | 3967 } |
| 3969 | 3968 |
| 3970 } // namespace dart | 3969 } // namespace dart |
| OLD | NEW |