| 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)";
|
| }
|
| }
|
| }
|
|
|