| Index: sdk/lib/core/errors.dart | 
| diff --git a/sdk/lib/core/errors.dart b/sdk/lib/core/errors.dart | 
| index 941e1cd818001c79f6692b9cb127fa84ea25065d..060eba7c5a82d39a742a65b07a8f4896ab5ea331 100644 | 
| --- a/sdk/lib/core/errors.dart | 
| +++ b/sdk/lib/core/errors.dart | 
| @@ -5,9 +5,7 @@ | 
| part of dart.core; | 
|  | 
| class Error { | 
| -  final StackTrace stackTrace; | 
| - | 
| -  Error() : stackTrace = ((){ try { throw 0; } catch (e, s) { return s; } })(); | 
| +  const Error(); | 
|  | 
| /** | 
| * Safely convert a value to a [String] description. | 
| @@ -40,24 +38,18 @@ class Error { | 
| * Error thrown by the runtime system when an assert statement fails. | 
| */ | 
| class AssertionError implements Error { | 
| -  /** Assertion errors don't capture stack traces. */ | 
| -  StackTrace get stackTrace => null; | 
| } | 
|  | 
| /** | 
| * Error thrown by the runtime system when a type assertion fails. | 
| */ | 
| class TypeError implements AssertionError { | 
| -  /** Type errors don't capture stack traces. */ | 
| -  StackTrace get stackTrace => null; | 
| } | 
|  | 
| /** | 
| * Error thrown by the runtime system when a cast operation fails. | 
| */ | 
| class CastError implements Error { | 
| -  /** Cast errors don't capture stack traces. */ | 
| -  StackTrace get stackTrace => null; | 
| } | 
|  | 
| /** | 
| @@ -65,15 +57,13 @@ class CastError implements Error { | 
| */ | 
| class NullThrownError implements Error { | 
| const NullThrownError(); | 
| -  /** NullThrown errors don't capture stack traces. */ | 
| -  StackTrace get stackTrace => null; | 
| String toString() => "Throw of null."; | 
| } | 
|  | 
| /** | 
| * Error thrown when a function is passed an unacceptable argument. | 
| */ | 
| -class ArgumentError extends Error { | 
| +class ArgumentError implements Error { | 
| final message; | 
|  | 
| /** The [message] describes the erroneous argument. */ | 
| @@ -122,19 +112,15 @@ class RangeError extends ArgumentError { | 
| */ | 
| class FallThroughError implements Error { | 
| const FallThroughError(); | 
| -  StackTrace get stackTrace => null; | 
| } | 
|  | 
| -// TODO(lrn): Class description. Ensure that this is the class thrown by | 
| -// both implementations, or move it to the one that uses it. | 
| + | 
| class AbstractClassInstantiationError implements Error { | 
| final String _className; | 
| const AbstractClassInstantiationError(String this._className); | 
| -  StackTrace get stackTrace => null; | 
| String toString() => "Cannot instantiate abstract class: '$_className'"; | 
| } | 
|  | 
| - | 
| /** | 
| * Error thrown by the default implementation of [:noSuchMethod:] on [Object]. | 
| */ | 
| @@ -159,15 +145,13 @@ class NoSuchMethodError implements Error { | 
| * method with the same name on the receiver, if available. This is | 
| * the method that would have been called if the parameters had matched. | 
| */ | 
| -  NoSuchMethodError(Object this._receiver, | 
| +  const NoSuchMethodError(Object this._receiver, | 
| String this._memberName, | 
| List this._arguments, | 
| Map<String,dynamic> this._namedArguments, | 
| [List existingArgumentNames = null]) | 
| : this._existingArgumentNames = existingArgumentNames; | 
|  | 
| -  StackTrace get stackTrace => null; | 
| - | 
| external String toString(); | 
| } | 
|  | 
| @@ -178,7 +162,7 @@ class NoSuchMethodError implements Error { | 
| * This [Error] is thrown when an instance cannot implement one of the methods | 
| * in its signature. | 
| */ | 
| -class UnsupportedError extends Error { | 
| +class UnsupportedError implements Error { | 
| final String message; | 
| UnsupportedError(this.message); | 
| String toString() => "Unsupported operation: $message"; | 
| @@ -195,8 +179,9 @@ class UnsupportedError extends Error { | 
| * an [UnsupportedError] instead. This error is only intended for | 
| * use during development. | 
| */ | 
| -class UnimplementedError extends UnsupportedError { | 
| -  UnimplementedError([String message]) : super(message); | 
| +class UnimplementedError implements UnsupportedError { | 
| +  final String message; | 
| +  UnimplementedError([String this.message]); | 
| String toString() => (this.message != null | 
| ? "UnimplementedError: $message" | 
| : "UnimplementedError"); | 
| @@ -209,7 +194,7 @@ class UnimplementedError extends UnsupportedError { | 
| * This is a generic error used for a variety of different erroneous | 
| * actions. The message should be descriptive. | 
| */ | 
| -class StateError extends Error { | 
| +class StateError implements Error { | 
| final String message; | 
| StateError(this.message); | 
| String toString() => "Bad state: $message"; | 
| @@ -223,11 +208,11 @@ class StateError extends Error { | 
| * ([Iterable] or similar collection of values) should declare which operations | 
| * are allowed during an iteration. | 
| */ | 
| -class ConcurrentModificationError extends Error { | 
| +class ConcurrentModificationError implements Error { | 
| /** The object that was modified in an incompatible way. */ | 
| final Object modifiedObject; | 
|  | 
| -  ConcurrentModificationError([this.modifiedObject]); | 
| +  const ConcurrentModificationError([this.modifiedObject]); | 
|  | 
| String toString() { | 
| if (modifiedObject == null) { | 
| @@ -241,14 +226,12 @@ class ConcurrentModificationError extends Error { | 
|  | 
| class OutOfMemoryError implements Error { | 
| const OutOfMemoryError(); | 
| -  StackTrace get stackTrace => null; | 
| String toString() => "Out of Memory"; | 
| } | 
|  | 
|  | 
| class StackOverflowError implements Error { | 
| const StackOverflowError(); | 
| -  StackTrace get stackTrace => null; | 
| String toString() => "Stack Overflow"; | 
| } | 
|  | 
| @@ -262,7 +245,6 @@ class StackOverflowError implements Error { | 
| class CyclicInitializationError implements Error { | 
| final String variableName; | 
| const CyclicInitializationError([this.variableName]); | 
| -  StackTrace get stackTrace => null; | 
| String toString() => variableName == null | 
| ? "Reading static variable during its initialization" | 
| : "Reading static variable '$variableName' during its initialization"; | 
|  |