OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // Patch file for dart:core classes. | 5 // Patch file for dart:core classes. |
6 import "dart:_internal" as _symbol_dev; | 6 import "dart:_internal" as _symbol_dev; |
7 import 'dart:_interceptors'; | 7 import 'dart:_interceptors'; |
8 import 'dart:_js_helper' show patch, | 8 import 'dart:_js_helper' show patch, |
9 patch_new, | 9 patch_new, |
10 patch_old, | 10 patch_old, |
11 checkInt, | 11 checkInt, |
12 getRuntimeType, | 12 getRuntimeType, |
13 jsonEncodeNative, | 13 jsonEncodeNative, |
14 JSSyntaxRegExp, | 14 JSSyntaxRegExp, |
15 Primitives, | 15 Primitives, |
16 ConstantMap, | 16 ConstantMap, |
17 stringJoinUnchecked, | 17 stringJoinUnchecked, |
18 objectHashCode; | 18 objectHashCode, |
19 Closure; | |
19 | 20 |
20 import 'dart:_native_typed_data' show NativeUint8List; | 21 import 'dart:_native_typed_data' show NativeUint8List; |
21 | 22 |
22 String _symbolToString(Symbol symbol) => _symbol_dev.Symbol.getName(symbol); | 23 String _symbolToString(Symbol symbol) => _symbol_dev.Symbol.getName(symbol); |
23 | 24 |
24 _symbolMapToStringMap(Map<Symbol, dynamic> map) { | 25 _symbolMapToStringMap(Map<Symbol, dynamic> map) { |
25 if (map == null) return null; | 26 if (map == null) return null; |
26 var result = new Map<String, dynamic>(); | 27 var result = new Map<String, dynamic>(); |
27 map.forEach((Symbol key, value) { | 28 map.forEach((Symbol key, value) { |
28 result[_symbolToString(key)] = value; | 29 result[_symbolToString(key)] = value; |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
144 static double parse(String source, | 145 static double parse(String source, |
145 [double onError(String source)]) { | 146 [double onError(String source)]) { |
146 return Primitives.parseDouble(source, onError); | 147 return Primitives.parseDouble(source, onError); |
147 } | 148 } |
148 } | 149 } |
149 | 150 |
150 @patch | 151 @patch |
151 class Error { | 152 class Error { |
152 @patch | 153 @patch |
153 static String _objectToString(Object object) { | 154 static String _objectToString(Object object) { |
155 // Closures all have useful and safe toString methods. | |
156 if (object is Closure) return object.toString(); | |
154 return Primitives.objectToString(object); | 157 return Primitives.objectToString(object); |
155 } | 158 } |
156 | 159 |
157 @patch | 160 @patch |
158 static String _stringToSafeString(String string) { | 161 static String _stringToSafeString(String string) { |
159 return jsonEncodeNative(string); | 162 return jsonEncodeNative(string); |
160 } | 163 } |
161 | 164 |
162 @patch | 165 @patch |
163 StackTrace get stackTrace => Primitives.extractStackTrace(this); | 166 StackTrace get stackTrace => Primitives.extractStackTrace(this); |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
451 static String _writeOne(String string, Object obj) { | 454 static String _writeOne(String string, Object obj) { |
452 return Primitives.stringConcatUnchecked(string, '$obj'); | 455 return Primitives.stringConcatUnchecked(string, '$obj'); |
453 } | 456 } |
454 } | 457 } |
455 | 458 |
456 @patch | 459 @patch |
457 class NoSuchMethodError { | 460 class NoSuchMethodError { |
458 @patch | 461 @patch |
459 String toString() { | 462 String toString() { |
460 StringBuffer sb = new StringBuffer(); | 463 StringBuffer sb = new StringBuffer(); |
461 int i = 0; | 464 String comma = ''; |
462 if (_arguments != null) { | 465 if (_arguments != null) { |
463 for (; i < _arguments.length; i++) { | 466 for (var argument in _arguments) { |
floitsch
2015/05/12 23:14:16
maybe?:
sb.writeAll(_arguments.map(Error.safeToStr
sra1
2015/05/12 23:25:50
if (_arguments != null && _arguments.isNotEmpty) .
| |
464 if (i > 0) { | 467 sb.write(comma); |
465 sb.write(", "); | 468 sb.write(Error.safeToString(argument)); |
466 } | 469 comma = ', '; |
467 sb.write(Error.safeToString(_arguments[i])); | |
468 } | 470 } |
469 } | 471 } |
470 if (_namedArguments != null) { | 472 if (_namedArguments != null) { |
471 _namedArguments.forEach((Symbol key, var value) { | 473 _namedArguments.forEach((Symbol key, var value) { |
472 if (i > 0) { | 474 sb.write(comma); |
473 sb.write(", "); | |
474 } | |
475 sb.write(_symbolToString(key)); | 475 sb.write(_symbolToString(key)); |
476 sb.write(": "); | 476 sb.write(": "); |
477 sb.write(Error.safeToString(value)); | 477 sb.write(Error.safeToString(value)); |
478 i++; | 478 comma = ', '; |
479 }); | 479 }); |
480 } | 480 } |
481 String memberName = _symbolToString(_memberName); | |
482 String receiverText = Error.safeToString(_receiver); | |
483 String actualParameters = '$sb'; | |
481 if (_existingArgumentNames == null) { | 484 if (_existingArgumentNames == null) { |
482 return "NoSuchMethodError : method not found: '$_memberName'\n" | 485 return "NoSuchMethodError: method not found: '$memberName'\n" |
483 "Receiver: ${Error.safeToString(_receiver)}\n" | 486 "Receiver: ${receiverText}\n" |
484 "Arguments: [$sb]"; | 487 "Arguments: [$actualParameters]"; |
485 } else { | 488 } else { |
486 String actualParameters = sb.toString(); | 489 String formalParameters = _existingArgumentNames.join(', '); |
487 sb = new StringBuffer(); | |
488 for (int i = 0; i < _existingArgumentNames.length; i++) { | |
489 if (i > 0) { | |
490 sb.write(", "); | |
491 } | |
492 sb.write(_existingArgumentNames[i]); | |
493 } | |
494 String formalParameters = sb.toString(); | |
495 return "NoSuchMethodError: incorrect number of arguments passed to " | 490 return "NoSuchMethodError: incorrect number of arguments passed to " |
496 "method named '$_memberName'\n" | 491 "method named '$memberName'\n" |
497 "Receiver: ${Error.safeToString(_receiver)}\n" | 492 "Receiver: ${receiverText}\n" |
498 "Tried calling: $_memberName($actualParameters)\n" | 493 "Tried calling: $memberName($actualParameters)\n" |
499 "Found: $_memberName($formalParameters)"; | 494 "Found: $memberName($formalParameters)"; |
500 } | 495 } |
501 } | 496 } |
502 } | 497 } |
503 | 498 |
504 @patch | 499 @patch |
505 class Uri { | 500 class Uri { |
506 @patch | 501 @patch |
507 static bool get _isWindows => false; | 502 static bool get _isWindows => false; |
508 | 503 |
509 @patch | 504 @patch |
510 static Uri get base { | 505 static Uri get base { |
511 String uri = Primitives.currentUri(); | 506 String uri = Primitives.currentUri(); |
512 if (uri != null) return Uri.parse(uri); | 507 if (uri != null) return Uri.parse(uri); |
513 throw new UnsupportedError("'Uri.base' is not supported"); | 508 throw new UnsupportedError("'Uri.base' is not supported"); |
514 } | 509 } |
515 } | 510 } |
OLD | NEW |