Chromium Code Reviews| Index: runtime/lib/errors_patch.dart |
| diff --git a/runtime/lib/errors_patch.dart b/runtime/lib/errors_patch.dart |
| index 26358027749c23366f3d179cda7675cbd548186e..1514c1f42a6a69dc026044aa7c6c13ac55d18913 100644 |
| --- a/runtime/lib/errors_patch.dart |
| +++ b/runtime/lib/errors_patch.dart |
| @@ -18,29 +18,33 @@ |
| class _AssertionError extends Error implements AssertionError { |
| _AssertionError._create( |
| - this._failedAssertion, this._url, this._line, this._column); |
| + this._failedAssertion, this._url, this._line, this._column, |
| + this.message); |
| - static _throwNew(int assertionStart, int assertionEnd) |
| + static _throwNew(int assertionStart, int assertionEnd, Object message) { |
| + _doThrowNew(assertionStart, assertionEnd, message); |
| + } |
| + |
| + static _doThrowNew(int assertionStart, int assertionEnd, Object message) |
|
regis
2016/12/13 23:26:51
Why do we need this new function _doThrowNew calle
hausner
2016/12/14 16:59:35
Eliminated _doThrowNew
|
| native "AssertionError_throwNew"; |
| - static void _checkAssertion(condition, int start, int end) { |
| + static _checkAssertion(condition) { |
|
regis
2016/12/13 23:26:51
This is not checking the assertion anymore (no thr
hausner
2016/12/14 16:59:35
Done.
|
| if (condition is Function) { |
| condition = condition(); |
| } |
| - if (!condition) { |
| - _throwNew(start, end); |
| - } |
| + return condition; |
| } |
| - static void _checkConstAssertion(bool condition, int start, int end) { |
| - if (!condition) { |
| - _throwNew(start, end); |
| - } |
| + String get _messageString { |
| + if (message == null) return "is not true."; |
| + if (message is String) return message; |
| + return Error.safeToString(message); |
| } |
| String toString() { |
| if (_url == null) { |
| - return _failedAssertion; |
| + if (message == null) return _failedAssertion; |
| + return "'$_failedAssertion': $_messageString"; |
| } |
| var columnInfo = ""; |
| if (_column > 0) { |
| @@ -48,17 +52,18 @@ class _AssertionError extends Error implements AssertionError { |
| columnInfo = " pos $_column"; |
| } |
| return "'$_url': Failed assertion: line $_line$columnInfo: " |
| - "'$_failedAssertion' is not true."; |
| + "'$_failedAssertion': $_messageString"; |
| } |
| final String _failedAssertion; |
| final String _url; |
| final int _line; |
| final int _column; |
| + final Object message; |
| } |
| class _TypeError extends _AssertionError implements TypeError { |
| - _TypeError._create(String url, int line, int column, this._errorMsg) |
| - : super._create("is assignable", url, line, column); |
| + _TypeError._create(String url, int line, int column, String errorMsg) |
| + : super._create("is assignable", url, line, column, errorMsg); |
| static _throwNew(int location, |
| Object src_value, |
| @@ -78,9 +83,7 @@ class _TypeError extends _AssertionError implements TypeError { |
| } |
| } |
| - String toString() => _errorMsg; |
| - |
| - final String _errorMsg; |
| + String toString() => super.message; |
| } |
| class _CastError extends Error implements CastError { |