Index: pkg/compiler/lib/src/js_backend/backend.dart |
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart |
index 8c2f26ad9a7bd531da3b7a1160ce4b249866cf5f..41e7227e7b07de3dd592cc82db730a07a483a782 100644 |
--- a/pkg/compiler/lib/src/js_backend/backend.dart |
+++ b/pkg/compiler/lib/src/js_backend/backend.dart |
@@ -40,15 +40,14 @@ import '../js_emitter/js_emitter.dart' show CodeEmitterTask; |
import '../library_loader.dart' show LibraryLoader, LoadedLibraries; |
import '../native/native.dart' as native; |
import '../ssa/ssa.dart' show SsaFunctionCompiler; |
-import '../ssa/nodes.dart' show HInstruction; |
import '../tree/tree.dart'; |
import '../types/types.dart'; |
import '../universe/call_structure.dart' show CallStructure; |
-import '../universe/selector.dart' show Selector, SelectorKind; |
+import '../universe/feature.dart'; |
+import '../universe/selector.dart' show Selector; |
import '../universe/universe.dart'; |
import '../universe/use.dart' |
show DynamicUse, StaticUse, StaticUseKind, TypeUse, TypeUseKind; |
-import '../universe/feature.dart'; |
import '../universe/world_impact.dart' |
show |
ImpactStrategy, |
@@ -66,6 +65,7 @@ import 'constant_handler_javascript.dart'; |
import 'custom_elements_analysis.dart'; |
import 'enqueuer.dart'; |
import 'js_interop_analysis.dart' show JsInteropAnalysis; |
+import 'kernel_task.dart'; |
import 'lookup_map_analysis.dart' show LookupMapAnalysis; |
import 'namer.dart'; |
import 'native_data.dart' show NativeData; |
@@ -564,6 +564,9 @@ class JavaScriptBackend extends Backend { |
/// Support for classifying `noSuchMethod` implementations. |
NoSuchMethodRegistry noSuchMethodRegistry; |
+ /// Builds kernel representation for the program. |
+ KernelTask kernelTask; |
+ |
JavaScriptConstantTask constantCompilerTask; |
JavaScriptImpactTransformer impactTransformer; |
@@ -612,6 +615,7 @@ class JavaScriptBackend extends Backend { |
jsInteropAnalysis = new JsInteropAnalysis(this); |
noSuchMethodRegistry = new NoSuchMethodRegistry(this); |
+ kernelTask = new KernelTask(this); |
constantCompilerTask = new JavaScriptConstantTask(compiler); |
impactTransformer = new JavaScriptImpactTransformer(this); |
patchResolverTask = new PatchResolverTask(compiler); |
@@ -2365,6 +2369,10 @@ class JavaScriptBackend extends Backend { |
enabledNoSuchMethod = true; |
} |
+ if (compiler.options.useKernel) { |
+ kernelTask.buildKernelIr(); |
+ } |
+ |
if (compiler.options.hasIncrementalSupport) { |
// Always enable tear-off closures during incremental compilation. |
Element e = helpers.closureFromTearOff; |