| Index: runtime/vm/flow_graph_compiler_x64.cc
|
| ===================================================================
|
| --- runtime/vm/flow_graph_compiler_x64.cc (revision 39693)
|
| +++ runtime/vm/flow_graph_compiler_x64.cc (working copy)
|
| @@ -907,17 +907,9 @@
|
|
|
| __ Bind(&wrong_num_arguments);
|
| if (function.IsClosureFunction()) {
|
| - // Invoke noSuchMethod function passing "call" as the original name.
|
| - StubCode* stub_code = isolate()->stub_code();
|
| - const int kNumArgsChecked = 1;
|
| - const ICData& ic_data = ICData::ZoneHandle(
|
| - ICData::New(function, Symbols::Call(), Object::empty_array(),
|
| - Isolate::kNoDeoptId, kNumArgsChecked));
|
| - __ LoadObject(RBX, ic_data, PP);
|
| __ LeaveDartFrame(); // The arguments are still on the stack.
|
| - __ jmp(&stub_code->CallNoSuchMethodFunctionLabel());
|
| + __ jmp(&isolate()->stub_code()->CallClosureNoSuchMethodLabel());
|
| // The noSuchMethod call may return to the caller, but not here.
|
| - __ int3();
|
| } else if (check_correct_named_args) {
|
| __ Stop("Wrong arguments");
|
| }
|
| @@ -1100,21 +1092,9 @@
|
|
|
| __ Bind(&wrong_num_arguments);
|
| if (function.IsClosureFunction()) {
|
| - // Invoke noSuchMethod function passing the original function name.
|
| - // For closure functions, use "call" as the original name.
|
| - const String& name =
|
| - String::Handle(function.IsClosureFunction()
|
| - ? Symbols::Call().raw()
|
| - : function.name());
|
| - const int kNumArgsChecked = 1;
|
| - const ICData& ic_data = ICData::ZoneHandle(
|
| - ICData::New(function, name, Object::empty_array(),
|
| - Isolate::kNoDeoptId, kNumArgsChecked));
|
| - __ LoadObject(RBX, ic_data, PP);
|
| __ LeaveDartFrame(); // The arguments are still on the stack.
|
| - __ jmp(&stub_code->CallNoSuchMethodFunctionLabel());
|
| + __ jmp(&stub_code->CallClosureNoSuchMethodLabel());
|
| // The noSuchMethod call may return to the caller, but not here.
|
| - __ int3();
|
| } else {
|
| __ Stop("Wrong number of arguments");
|
| }
|
|
|