| Index: dart/sdk/lib/_internal/compiler/implementation/compiler.dart
 | 
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/compiler.dart b/dart/sdk/lib/_internal/compiler/implementation/compiler.dart
 | 
| index ae6c87a243c5ea482f52c80c9f48978d42a68e09..aae34dfb784948e09930fbd6d99044425a85f620 100644
 | 
| --- a/dart/sdk/lib/_internal/compiler/implementation/compiler.dart
 | 
| +++ b/dart/sdk/lib/_internal/compiler/implementation/compiler.dart
 | 
| @@ -307,6 +307,7 @@ abstract class Compiler implements DiagnosticListener {
 | 
|    ConstantHandler metadataHandler;
 | 
|    EnqueueTask enqueuer;
 | 
|    CompilerTask fileReadingTask;
 | 
| +  DeferredLoadTask deferredLoadTask;
 | 
|  
 | 
|    static const SourceString MAIN = const SourceString('main');
 | 
|    static const SourceString CALL_OPERATOR_NAME = const SourceString('call');
 | 
| @@ -385,6 +386,7 @@ abstract class Compiler implements DiagnosticListener {
 | 
|        checker = new TypeCheckerTask(this),
 | 
|        typesTask = new ti.TypesTask(this),
 | 
|        constantHandler = new ConstantHandler(this, backend.constantSystem),
 | 
| +      deferredLoadTask = new DeferredLoadTask(this),
 | 
|        enqueuer = new EnqueueTask(this)];
 | 
|  
 | 
|      tasks.addAll(backend.tasks);
 | 
| @@ -653,6 +655,8 @@ abstract class Compiler implements DiagnosticListener {
 | 
|        }
 | 
|      }
 | 
|  
 | 
| +    deferredLoadTask.registerMainApp(mainApp);
 | 
| +
 | 
|      log('Resolving...');
 | 
|      phase = PHASE_RESOLVING;
 | 
|      if (analyzeAll) {
 | 
| @@ -1042,7 +1046,7 @@ class CompilerTask {
 | 
|    String get name => 'Unknown task';
 | 
|    int get timing => watch.elapsedMilliseconds;
 | 
|  
 | 
| -  measure(Function action) {
 | 
| +  measure(action()) {
 | 
|      CompilerTask previous = compiler.measuredTask;
 | 
|      if (identical(this, previous)) return action();
 | 
|      compiler.measuredTask = this;
 | 
| @@ -1056,6 +1060,10 @@ class CompilerTask {
 | 
|        compiler.measuredTask = previous;
 | 
|      }
 | 
|    }
 | 
| +
 | 
| +  measureElement(Element element, action()) {
 | 
| +    compiler.withCurrentElement(element, () => measure(action));
 | 
| +  }
 | 
|  }
 | 
|  
 | 
|  class CompilerCancelledException implements Exception {
 | 
| 
 |