Chromium Code Reviews| 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 |