Index: sdk/lib/_internal/js_runtime/lib/core_patch.dart |
diff --git a/sdk/lib/_internal/js_runtime/lib/core_patch.dart b/sdk/lib/_internal/js_runtime/lib/core_patch.dart |
index e5e76bfa6478fc459621dd449463ed15e6fbaab9..474bf6adc5d982f0d29b26a336826f3b8c2c2685 100644 |
--- a/sdk/lib/_internal/js_runtime/lib/core_patch.dart |
+++ b/sdk/lib/_internal/js_runtime/lib/core_patch.dart |
@@ -586,38 +586,46 @@ class NoSuchMethodError { |
@patch |
String toString() { |
- StringBuffer sb = new StringBuffer(''); |
- String comma = ''; |
+ StringBuffer sb = new StringBuffer(); |
+ int i = 0; |
if (_arguments != null) { |
- for (var argument in _arguments) { |
- sb.write(comma); |
- sb.write(Error.safeToString(argument)); |
- comma = ', '; |
+ for (; i < _arguments.length; i++) { |
+ if (i > 0) { |
+ sb.write(", "); |
+ } |
+ sb.write(Error.safeToString(_arguments[i])); |
} |
} |
if (_namedArguments != null) { |
_namedArguments.forEach((Symbol key, var value) { |
- sb.write(comma); |
+ if (i > 0) { |
+ sb.write(", "); |
+ } |
sb.write(_symbolToString(key)); |
sb.write(": "); |
sb.write(Error.safeToString(value)); |
- comma = ', '; |
+ i++; |
}); |
} |
- String memberName = _symbolToString(_memberName); |
- String receiverText = Error.safeToString(_receiver); |
- String actualParameters = '$sb'; |
if (_existingArgumentNames == null) { |
- return "NoSuchMethodError: method not found: '$memberName'\n" |
- "Receiver: ${receiverText}\n" |
- "Arguments: [$actualParameters]"; |
+ return "NoSuchMethodError : method not found: '$_memberName'\n" |
+ "Receiver: ${Error.safeToString(_receiver)}\n" |
+ "Arguments: [$sb]"; |
} else { |
- String formalParameters = _existingArgumentNames.join(', '); |
+ String actualParameters = sb.toString(); |
+ sb = new StringBuffer(); |
+ for (int i = 0; i < _existingArgumentNames.length; i++) { |
+ if (i > 0) { |
+ sb.write(", "); |
+ } |
+ sb.write(_existingArgumentNames[i]); |
+ } |
+ String formalParameters = sb.toString(); |
return "NoSuchMethodError: incorrect number of arguments passed to " |
- "method named '$memberName'\n" |
- "Receiver: ${receiverText}\n" |
- "Tried calling: $memberName($actualParameters)\n" |
- "Found: $memberName($formalParameters)"; |
+ "method named '$_memberName'\n" |
+ "Receiver: ${Error.safeToString(_receiver)}\n" |
+ "Tried calling: $_memberName($actualParameters)\n" |
+ "Found: $_memberName($formalParameters)"; |
} |
} |
} |