| Index: dart/lib/compiler/implementation/compiler.dart | 
| diff --git a/dart/lib/compiler/implementation/compiler.dart b/dart/lib/compiler/implementation/compiler.dart | 
| index 4cfc900ba86182c22cdb08833fec42a4c69fb127..1e0af70862c0f625c4bf1d3effb2361b5996a520 100644 | 
| --- a/dart/lib/compiler/implementation/compiler.dart | 
| +++ b/dart/lib/compiler/implementation/compiler.dart | 
| @@ -148,6 +148,8 @@ class Compiler implements DiagnosticListener { | 
|  | 
| bool compilationFailed = false; | 
|  | 
| +  bool hasCrashed = false; | 
| + | 
| Compiler([this.tracer = const Tracer(), | 
| this.enableTypeAssertions = false, | 
| this.enableUserAssertions = false, | 
| @@ -203,6 +205,8 @@ class Compiler implements DiagnosticListener { | 
| } | 
|  | 
| void unhandledExceptionOnElement(Element element) { | 
| +    if (hasCrashed) return; | 
| +    hasCrashed = true; | 
| reportDiagnostic(spanFromElement(element), | 
| MessageKind.COMPILER_CRASHED.error().toString(), | 
| api.Diagnostic.CRASH); | 
| @@ -765,10 +769,6 @@ class Compiler implements DiagnosticListener { | 
| enqueuer.codegen.registerInstantiatedClass(cls); | 
| } | 
|  | 
| -  void resolveClass(ClassElement element) { | 
| -    withCurrentElement(element, () => resolver.resolveClass(element)); | 
| -  } | 
| - | 
| Type resolveTypeAnnotation(Element element, TypeAnnotation annotation) { | 
| return resolver.resolveTypeAnnotation(element, annotation); | 
| } | 
|  |