| Index: runtime/vm/code_generator.cc
|
| ===================================================================
|
| --- runtime/vm/code_generator.cc (revision 25039)
|
| +++ runtime/vm/code_generator.cc (working copy)
|
| @@ -801,16 +801,13 @@
|
| const ICData& ic_data) {
|
| ArgumentsDescriptor
|
| arguments_descriptor(Array::Handle(ic_data.arguments_descriptor()));
|
| - intptr_t num_arguments = arguments_descriptor.Count();
|
| - int num_named_arguments = arguments_descriptor.NamedCount();
|
| String& function_name = String::Handle(ic_data.target_name());
|
| ASSERT(function_name.IsSymbol());
|
|
|
| Function& function = Function::Handle();
|
| function = Resolver::ResolveDynamic(receiver,
|
| function_name,
|
| - num_arguments,
|
| - num_named_arguments);
|
| + arguments_descriptor);
|
| if (function.IsNull()) {
|
| return Code::null();
|
| } else {
|
| @@ -1063,15 +1060,11 @@
|
| cls.ToCString(), name.ToCString());
|
| }
|
|
|
| - intptr_t arg_count =
|
| - Smi::Cast(Object::Handle(descriptor.At(0))).Value();
|
| - intptr_t named_arg_count =
|
| - arg_count - Smi::Cast(Object::Handle(descriptor.At(1))).Value();
|
| + ArgumentsDescriptor args_desc(descriptor);
|
| const Function& target = Function::Handle(
|
| Resolver::ResolveDynamicForReceiverClass(cls,
|
| name,
|
| - arg_count,
|
| - named_arg_count));
|
| + args_desc));
|
|
|
| Instructions& instructions = Instructions::Handle();
|
| if (!target.IsNull()) {
|
| @@ -1112,12 +1105,12 @@
|
| args.Add(&receiver);
|
| args.Add(&arg1);
|
| const intptr_t kNumArguments = 2;
|
| - const intptr_t kNumNamedArguments = 0;
|
| - Function& target_function = Function::Handle();
|
| - target_function = Resolver::ResolveDynamic(receiver,
|
| - target_name,
|
| - kNumArguments,
|
| - kNumNamedArguments);
|
| + ArgumentsDescriptor args_desc(
|
| + Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| + const Function& target_function = Function::Handle(
|
| + Resolver::ResolveDynamic(receiver,
|
| + target_name,
|
| + args_desc));
|
| ASSERT(!target_function.IsNull());
|
| GrowableArray<intptr_t> class_ids(kNumArguments);
|
| ASSERT(ic_data.num_args_tested() == kNumArguments);
|
| @@ -1189,12 +1182,12 @@
|
| // 1. Check if there is a getter with the same name.
|
| const String& getter_name = String::Handle(Field::GetterName(target_name));
|
| const int kNumArguments = 1;
|
| - const int kNumNamedArguments = 0;
|
| + ArgumentsDescriptor args_desc(
|
| + Array::Handle(ArgumentsDescriptor::New(kNumArguments)));
|
| const Function& getter = Function::Handle(
|
| Resolver::ResolveDynamicForReceiverClass(receiver_class,
|
| getter_name,
|
| - kNumArguments,
|
| - kNumNamedArguments));
|
| + args_desc));
|
| if (getter.IsNull() || getter.IsMethodExtractor()) {
|
| return false;
|
| }
|
|
|