Index: pkg/compiler/lib/src/js_backend/codegen/task.dart |
diff --git a/pkg/compiler/lib/src/js_backend/codegen/task.dart b/pkg/compiler/lib/src/js_backend/codegen/task.dart |
index 93a23205ba6a5a4558912dd0e566a3abd7c538ce..ac95eec51e5e2290d5ec7212d65d27d68ffcca62 100644 |
--- a/pkg/compiler/lib/src/js_backend/codegen/task.dart |
+++ b/pkg/compiler/lib/src/js_backend/codegen/task.dart |
@@ -38,6 +38,7 @@ import '../../tree_ir/optimization/optimization.dart'; |
import '../../tree_ir/optimization/optimization.dart' as tree_opt; |
import '../../tree_ir/tree_ir_integrity.dart'; |
import '../../cps_ir/cps_ir_nodes_sexpr.dart'; |
+import '../../cps_ir/type_mask_system.dart'; |
class CpsFunctionCompiler implements FunctionCompiler { |
final ConstantSystem constantSystem; |
@@ -69,7 +70,6 @@ class CpsFunctionCompiler implements FunctionCompiler { |
/// Generates JavaScript code for `work.element`. |
js.Fun compile(CodegenWorkItem work) { |
AstElement element = work.element; |
- JavaScriptBackend backend = compiler.backend; |
return compiler.withCurrentElement(element, () { |
try { |
// TODO(karlklose): remove this fallback when we do not need it for |
@@ -170,10 +170,13 @@ class CpsFunctionCompiler implements FunctionCompiler { |
assert(checkCpsIntegrity(cpsNode)); |
} |
+ TypeMaskSystem typeSystem = new TypeMaskSystem(compiler); |
+ |
applyCpsPass(new RedundantJoinEliminator()); |
applyCpsPass(new RedundantPhiEliminator()); |
- applyCpsPass(new InsertRefinements(compiler.typesTask, compiler.world)); |
- TypePropagator typePropagator = new TypePropagator(compiler, this); |
+ applyCpsPass(new InsertRefinements(typeSystem)); |
+ TypePropagator typePropagator = |
+ new TypePropagator(compiler, typeSystem, this); |
applyCpsPass(typePropagator); |
dumpTypedIR(cpsNode, typePropagator); |
applyCpsPass(new RemoveRefinements()); |