| Index: tool/input_sdk/private/js_helper.dart
|
| diff --git a/tool/input_sdk/private/js_helper.dart b/tool/input_sdk/private/js_helper.dart
|
| index 9048d0facc5d6e72471edf702ef79b1e60849278..8df5529ac0209e2256bd1d3e9f4bd67cd3acf5dd 100644
|
| --- a/tool/input_sdk/private/js_helper.dart
|
| +++ b/tool/input_sdk/private/js_helper.dart
|
| @@ -782,9 +782,9 @@ class TypeErrorImplementation extends Error implements TypeError {
|
| /**
|
| * Normal type error caused by a failed subtype test.
|
| */
|
| - TypeErrorImplementation(Object value, String type)
|
| - : message = "type '${Primitives.objectTypeName(value)}' is not a subtype "
|
| - "of type '$type'";
|
| + TypeErrorImplementation(Object value, Object actualType, Object expectedType)
|
| + : message = "Type '${actualType}' is not a subtype "
|
| + "of type '${expectedType}'";
|
|
|
| TypeErrorImplementation.fromMessage(String this.message);
|
|
|
| @@ -799,13 +799,40 @@ class CastErrorImplementation extends Error implements CastError {
|
| /**
|
| * Normal cast error caused by a failed type cast.
|
| */
|
| - CastErrorImplementation(Object actualType, Object expectedType)
|
| - : message = "CastError: Casting value of type $actualType to"
|
| - " incompatible type $expectedType";
|
| + CastErrorImplementation(Object value, Object actualType, Object expectedType)
|
| + : message = "CastError: Casting value of type '$actualType' to"
|
| + " incompatible type '$expectedType'";
|
|
|
| String toString() => message;
|
| }
|
|
|
| +/// Thrown by type assertions that fail in strong mode that would have passed in
|
| +/// standard Dart.
|
| +class StrongModeTypeError extends Error implements TypeError, StrongModeError {
|
| + final String message;
|
| + StrongModeTypeError(Object value, Object actualType, Object expectedType)
|
| + : message = "Type '${actualType}' is not a subtype "
|
| + "of type '${expectedType}' in strong mode";
|
| + String toString() => message;
|
| +}
|
| +
|
| +/// Thrown by casts that fail in strong mode that would have passed in standard
|
| +/// Dart.
|
| +class StrongModeCastError extends Error implements CastError, StrongModeError {
|
| + final String message;
|
| + StrongModeCastError(Object value, Object actualType, Object expectedType)
|
| + : message = "CastError: Casting value of type '$actualType' to"
|
| + " type '$expectedType' which is incompatible in strong mode";
|
| + String toString() => message;
|
| +}
|
| +
|
| +/// Used for Strong-mode errors other than type assertions and casts.
|
| +class StrongModeErrorImplementation extends Error implements StrongModeError {
|
| + final String message;
|
| + StrongModeErrorImplementation(this.message);
|
| + String toString() => message;
|
| +}
|
| +
|
| class FallThroughErrorImplementation extends FallThroughError {
|
| FallThroughErrorImplementation();
|
| String toString() => "Switch case fall-through.";
|
|
|