Chromium Code Reviews| Index: runtime/vm/code_generator.cc |
| =================================================================== |
| --- runtime/vm/code_generator.cc (revision 22181) |
| +++ runtime/vm/code_generator.cc (working copy) |
| @@ -1086,7 +1086,14 @@ |
| const Array& orig_arguments_desc = Array::CheckedHandle(arguments.ArgAt(2)); |
| const Array& orig_arguments = Array::CheckedHandle(arguments.ArgAt(3)); |
| - const String& original_function_name = String::Handle(ic_data.target_name()); |
| + String& original_function_name = String::Handle(ic_data.target_name()); |
| + if (receiver.IsClosure()) { |
| + // For closure the function name is always 'call'. Replace it with the |
| + // name of the closurized function so that exception contains more |
|
regis
2013/04/30 19:07:10
There is not always a closurized function involved
srdjan
2013/04/30 21:46:52
It seems we always closurize, and there is always
|
| + // relevant information. |
| + const Function& function = Function::Handle(Closure::function(receiver)); |
| + original_function_name = function.QualifiedUserVisibleName(); |
| + } |
| const Object& result = Object::Handle( |
| DartEntry::InvokeNoSuchMethod(receiver, |
| original_function_name, |