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 { |