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 4cfc293375165c352343f08afd9a0f57d4d194b9..b18f84014e6f2591a0f2ff3ae38edcd6693a3cfb 100644 |
--- a/pkg/compiler/lib/src/js_backend/backend.dart |
+++ b/pkg/compiler/lib/src/js_backend/backend.dart |
@@ -52,6 +52,7 @@ import '../patch_parser.dart' |
import '../ssa/ssa.dart' show SsaFunctionCompiler; |
import '../tracer.dart'; |
import '../tree/tree.dart'; |
+import '../types/types.dart'; |
import '../universe/call_structure.dart' show CallStructure; |
import '../universe/selector.dart' show Selector; |
import '../universe/world_builder.dart'; |
@@ -442,7 +443,6 @@ class JavaScriptBackend { |
CheckedModeHelpers _checkedModeHelpers; |
ResolutionEnqueuerListener _resolutionEnqueuerListener; |
- CodegenEnqueuerListener _codegenEnqueuerListener; |
native.NativeResolutionEnqueuer _nativeResolutionEnqueuer; |
native.NativeCodegenEnqueuer _nativeCodegenEnqueuer; |
@@ -566,18 +566,6 @@ class JavaScriptBackend { |
lookupMapLibraryAccess, |
mirrorsAnalysis, |
_nativeResolutionEnqueuer); |
- _codegenEnqueuerListener = new CodegenEnqueuerListener( |
- this, |
- compiler.elementEnvironment, |
- commonElements, |
- helpers, |
- impacts, |
- mirrorsData, |
- customElementsCodegenAnalysis, |
- typeVariableHandler, |
- lookupMapAnalysis, |
- mirrorsAnalysis, |
- _nativeCodegenEnqueuer); |
} |
/// The [ConstantSystem] used to interpret compile-time constants for this |
@@ -653,8 +641,6 @@ class JavaScriptBackend { |
EnqueuerListener get resolutionEnqueuerListener => |
_resolutionEnqueuerListener; |
- EnqueuerListener get codegenEnqueuerListener => _codegenEnqueuerListener; |
- |
/// Returns constant environment for the JavaScript interpretation of the |
/// constants. |
JavaScriptConstantCompiler get constants { |
@@ -967,9 +953,29 @@ class JavaScriptBackend { |
noSuchMethodRegistry.isComplex(element); |
/// Creates an [Enqueuer] for code generation specific to this backend. |
- CodegenEnqueuer createCodegenEnqueuer(CompilerTask task, Compiler compiler) { |
+ CodegenEnqueuer createCodegenEnqueuer( |
+ CompilerTask task, Compiler compiler, ClosedWorld closedWorld) { |
return new CodegenEnqueuer( |
- task, this, compiler.options, const TreeShakingEnqueuerStrategy()); |
+ task, |
+ compiler.options, |
+ const TreeShakingEnqueuerStrategy(), |
+ new CodegenWorldBuilderImpl( |
+ this, closedWorld, const TypeMaskStrategy()), |
+ new CodegenWorkItemBuilder(this, compiler.options), |
+ new CodegenEnqueuerListener( |
+ compiler.dumpInfoTask, |
+ compiler.elementEnvironment, |
+ commonElements, |
+ helpers, |
+ impacts, |
+ backendUsage, |
+ rtiNeed, |
+ mirrorsData, |
+ customElementsCodegenAnalysis, |
+ typeVariableHandler, |
+ lookupMapAnalysis, |
+ mirrorsAnalysis, |
+ _nativeCodegenEnqueuer)); |
} |
WorldImpact codegen(CodegenWorkItem work) { |