| Index: runtime/lib/mirrors.cc
 | 
| ===================================================================
 | 
| --- runtime/lib/mirrors.cc	(revision 27310)
 | 
| +++ runtime/lib/mirrors.cc	(working copy)
 | 
| @@ -1211,15 +1211,9 @@
 | 
|    const Array& args_descriptor_array =
 | 
|        Array::Handle(ArgumentsDescriptor::New(args.Length(), arg_names));
 | 
|  
 | 
| -  String& ambiguity_error_msg = String::Handle(isolate);
 | 
|    const Function& function = Function::Handle(
 | 
| -      library.LookupFunctionAllowPrivate(function_name, &ambiguity_error_msg));
 | 
| +      library.LookupFunctionAllowPrivate(function_name));
 | 
|  
 | 
| -  if (function.IsNull() && !ambiguity_error_msg.IsNull()) {
 | 
| -    ThrowMirroredCompilationError(ambiguity_error_msg);
 | 
| -    UNREACHABLE();
 | 
| -  }
 | 
| -
 | 
|    ArgumentsDescriptor args_descriptor(args_descriptor_array);
 | 
|    if (function.IsNull() ||
 | 
|        !function.AreValidArguments(args_descriptor, NULL) ||
 | 
| @@ -1253,16 +1247,14 @@
 | 
|    // To access a top-level we may need to use the Field or the
 | 
|    // getter Function.  The getter function may either be in the
 | 
|    // library or in the field's owner class, depending.
 | 
| -  String& ambiguity_error_msg = String::Handle(isolate);
 | 
|    const Field& field = Field::Handle(
 | 
| -      library.LookupFieldAllowPrivate(getter_name, &ambiguity_error_msg));
 | 
| +      library.LookupFieldAllowPrivate(getter_name));
 | 
|    Function& getter = Function::Handle();
 | 
| -  if (field.IsNull() && ambiguity_error_msg.IsNull()) {
 | 
| +  if (field.IsNull()) {
 | 
|      // No field found and no ambiguity error.  Check for a getter in the lib.
 | 
|      const String& internal_getter_name =
 | 
|          String::Handle(Field::GetterName(getter_name));
 | 
| -    getter = library.LookupFunctionAllowPrivate(internal_getter_name,
 | 
| -                                                &ambiguity_error_msg);
 | 
| +    getter = library.LookupFunctionAllowPrivate(internal_getter_name);
 | 
|    } else if (!field.IsNull() && FieldIsUninitialized(field)) {
 | 
|      // A field was found.  Check for a getter in the field's owner classs.
 | 
|      const Class& klass = Class::Handle(field.owner());
 | 
| @@ -1284,15 +1276,11 @@
 | 
|    if (!field.IsNull()) {
 | 
|      return field.value();
 | 
|    }
 | 
| -  if (ambiguity_error_msg.IsNull()) {
 | 
| -    ThrowNoSuchMethod(Instance::null_instance(),
 | 
| -                      getter_name,
 | 
| -                      getter,
 | 
| -                      InvocationMirror::kTopLevel,
 | 
| -                      InvocationMirror::kGetter);
 | 
| -  } else {
 | 
| -    ThrowMirroredCompilationError(ambiguity_error_msg);
 | 
| -  }
 | 
| +  ThrowNoSuchMethod(Instance::null_instance(),
 | 
| +                    getter_name,
 | 
| +                    getter,
 | 
| +                    InvocationMirror::kTopLevel,
 | 
| +                    InvocationMirror::kGetter);
 | 
|    UNREACHABLE();
 | 
|    return Instance::null();
 | 
|  }
 | 
| @@ -1310,26 +1298,20 @@
 | 
|    // To access a top-level we may need to use the Field or the
 | 
|    // setter Function.  The setter function may either be in the
 | 
|    // library or in the field's owner class, depending.
 | 
| -  String& ambiguity_error_msg = String::Handle(isolate);
 | 
|    const Field& field = Field::Handle(
 | 
| -      library.LookupFieldAllowPrivate(setter_name, &ambiguity_error_msg));
 | 
| +      library.LookupFieldAllowPrivate(setter_name));
 | 
|  
 | 
| -  if (field.IsNull() && ambiguity_error_msg.IsNull()) {
 | 
| +  if (field.IsNull()) {
 | 
|      const String& internal_setter_name =
 | 
|          String::Handle(Field::SetterName(setter_name));
 | 
|      const Function& setter = Function::Handle(
 | 
| -        library.LookupFunctionAllowPrivate(internal_setter_name,
 | 
| -                                           &ambiguity_error_msg));
 | 
| +        library.LookupFunctionAllowPrivate(internal_setter_name));
 | 
|      if (setter.IsNull() || !setter.is_visible()) {
 | 
| -      if (ambiguity_error_msg.IsNull()) {
 | 
| -        ThrowNoSuchMethod(Instance::null_instance(),
 | 
| -                          setter_name,
 | 
| -                          setter,
 | 
| -                          InvocationMirror::kTopLevel,
 | 
| -                          InvocationMirror::kSetter);
 | 
| -      } else {
 | 
| -        ThrowMirroredCompilationError(ambiguity_error_msg);
 | 
| -      }
 | 
| +      ThrowNoSuchMethod(Instance::null_instance(),
 | 
| +                        setter_name,
 | 
| +                        setter,
 | 
| +                        InvocationMirror::kTopLevel,
 | 
| +                        InvocationMirror::kSetter);
 | 
|        UNREACHABLE();
 | 
|      }
 | 
|  
 | 
| 
 |