| 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 853554fd6c6b6396042476ccd1de79d73804c30f..061e44af309251da3b1f2aee88507d99a19d3c82 100644
 | 
| --- a/pkg/compiler/lib/src/js_backend/codegen/task.dart
 | 
| +++ b/pkg/compiler/lib/src/js_backend/codegen/task.dart
 | 
| @@ -12,13 +12,9 @@ import 'unsugar.dart';
 | 
|  import '../js_backend.dart';
 | 
|  
 | 
|  import '../../common.dart';
 | 
| -import '../../common/codegen.dart' show
 | 
| -    CodegenWorkItem;
 | 
| -import '../../common/tasks.dart' show
 | 
| -    CompilerTask,
 | 
| -    GenericTask;
 | 
| -import '../../compiler.dart' show
 | 
| -    Compiler;
 | 
| +import '../../common/codegen.dart' show CodegenWorkItem;
 | 
| +import '../../common/tasks.dart' show CompilerTask, GenericTask;
 | 
| +import '../../compiler.dart' show Compiler;
 | 
|  import '../../constants/constant_system.dart';
 | 
|  import '../../cps_ir/cps_ir_builder_task.dart';
 | 
|  import '../../cps_ir/cps_ir_nodes.dart' as cps;
 | 
| @@ -28,13 +24,11 @@ import '../../cps_ir/optimizers.dart';
 | 
|  import '../../cps_ir/optimizers.dart' as cps_opt;
 | 
|  import '../../cps_ir/type_mask_system.dart';
 | 
|  import '../../cps_ir/finalize.dart' show Finalize;
 | 
| -import '../../diagnostics/invariant.dart' show
 | 
| -    DEBUG_MODE;
 | 
| +import '../../diagnostics/invariant.dart' show DEBUG_MODE;
 | 
|  import '../../elements/elements.dart';
 | 
|  import '../../js/js.dart' as js;
 | 
|  import '../../js_backend/codegen/codegen.dart';
 | 
| -import '../../io/source_information.dart' show
 | 
| -    SourceInformationStrategy;
 | 
| +import '../../io/source_information.dart' show SourceInformationStrategy;
 | 
|  import '../../tree_ir/tree_ir_builder.dart' as tree_builder;
 | 
|  import '../../tracer.dart';
 | 
|  import '../../ssa/ssa.dart' as ssa;
 | 
| @@ -42,11 +36,8 @@ import '../../tree_ir/optimization/optimization.dart';
 | 
|  import '../../tree_ir/optimization/optimization.dart' as tree_opt;
 | 
|  import '../../tree_ir/tree_ir_integrity.dart';
 | 
|  import '../../tree_ir/tree_ir_nodes.dart' as tree_ir;
 | 
| -import '../../types/types.dart' show
 | 
| -    FlatTypeMask,
 | 
| -    ForwardingTypeMask,
 | 
| -    TypeMask,
 | 
| -    UnionTypeMask;
 | 
| +import '../../types/types.dart'
 | 
| +    show FlatTypeMask, ForwardingTypeMask, TypeMask, UnionTypeMask;
 | 
|  
 | 
|  class CpsFunctionCompiler implements FunctionCompiler {
 | 
|    final ConstantSystem constantSystem;
 | 
| @@ -69,7 +60,7 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|    Inliner inliner;
 | 
|  
 | 
|    CpsFunctionCompiler(Compiler compiler, JavaScriptBackend backend,
 | 
| -                      SourceInformationStrategy sourceInformationFactory)
 | 
| +      SourceInformationStrategy sourceInformationFactory)
 | 
|        : fallbackCompiler =
 | 
|              new ssa.SsaFunctionCompiler(backend, sourceInformationFactory),
 | 
|          cpsBuilderTask = new IrBuilderTask(compiler, sourceInformationFactory),
 | 
| @@ -79,7 +70,7 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|          glue = new Glue(compiler),
 | 
|          cpsOptimizationTask = new GenericTask('CPS optimization', compiler),
 | 
|          treeBuilderTask = new GenericTask('Tree builder', compiler),
 | 
| -      treeOptimizationTask = new GenericTask('Tree optimization', compiler) {
 | 
| +        treeOptimizationTask = new GenericTask('Tree optimization', compiler) {
 | 
|      inliner = new Inliner(this);
 | 
|    }
 | 
|  
 | 
| @@ -144,9 +135,8 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|    ///
 | 
|    /// If [targetName] is given, functions whose name contains that substring
 | 
|    /// will be dumped out if the idempotency test fails.
 | 
| -  void debugCpsPass(cps_opt.Pass makePass(),
 | 
| -                    cps.FunctionDefinition cpsFunction,
 | 
| -                    [String targetName]) {
 | 
| +  void debugCpsPass(cps_opt.Pass makePass(), cps.FunctionDefinition cpsFunction,
 | 
| +      [String targetName]) {
 | 
|      String original = stringify(cpsFunction);
 | 
|      cps_opt.Pass pass = makePass();
 | 
|      pass.rewrite(cpsFunction);
 | 
| @@ -165,9 +155,15 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|          print(before);
 | 
|          print('\n-->\n');
 | 
|          print(after);
 | 
| -        compiler.outputProvider('original', 'dump')..add(original)..close();
 | 
| -        compiler.outputProvider('before', 'dump')..add(before)..close();
 | 
| -        compiler.outputProvider('after', 'dump')..add(after)..close();
 | 
| +        compiler.outputProvider('original', 'dump')
 | 
| +          ..add(original)
 | 
| +          ..close();
 | 
| +        compiler.outputProvider('before', 'dump')
 | 
| +          ..add(before)
 | 
| +          ..close();
 | 
| +        compiler.outputProvider('after', 'dump')
 | 
| +          ..add(after)
 | 
| +          ..close();
 | 
|        }
 | 
|      }
 | 
|      traceGraph(pass.passName, cpsFunction);
 | 
| @@ -230,9 +226,8 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|      if (PRINT_TYPED_IR_FILTER != null &&
 | 
|          PRINT_TYPED_IR_FILTER.matchAsPrefix(cpsFunction.element.name) != null) {
 | 
|        String printType(nodeOrRef, String s) {
 | 
| -        cps.Node node = nodeOrRef is cps.Reference
 | 
| -            ? nodeOrRef.definition
 | 
| -            : nodeOrRef;
 | 
| +        cps.Node node =
 | 
| +            nodeOrRef is cps.Reference ? nodeOrRef.definition : nodeOrRef;
 | 
|          return node is cps.Variable && node.type != null
 | 
|              ? '$s:${formatTypeMask(node.type)}'
 | 
|              : s;
 | 
| @@ -294,8 +289,8 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|  
 | 
|    tree_ir.FunctionDefinition compileToTreeIr(cps.FunctionDefinition cpsNode) {
 | 
|      applyCpsPass(new Finalize(backend), cpsNode);
 | 
| -    tree_builder.Builder builder = new tree_builder.Builder(
 | 
| -        reporter.internalError, glue);
 | 
| +    tree_builder.Builder builder =
 | 
| +        new tree_builder.Builder(reporter.internalError, glue);
 | 
|      tree_ir.FunctionDefinition treeNode =
 | 
|          treeBuilderTask.measure(() => builder.buildFunction(cpsNode));
 | 
|      assert(treeNode != null);
 | 
| @@ -322,8 +317,8 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|  
 | 
|      treeOptimizationTask.measure(() {
 | 
|        applyTreePass(new StatementRewriter());
 | 
| -      applyTreePass(new VariableMerger(minifying:
 | 
| -          compiler.options.enableMinification));
 | 
| +      applyTreePass(
 | 
| +          new VariableMerger(minifying: compiler.options.enableMinification));
 | 
|        applyTreePass(new LoopRewriter());
 | 
|        applyTreePass(new LogicalRewriter());
 | 
|        applyTreePass(new PullIntoInitializers());
 | 
| @@ -332,8 +327,8 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|      return node;
 | 
|    }
 | 
|  
 | 
| -  js.Fun compileToJavaScript(CodegenWorkItem work,
 | 
| -                             tree_ir.FunctionDefinition definition) {
 | 
| +  js.Fun compileToJavaScript(
 | 
| +      CodegenWorkItem work, tree_ir.FunctionDefinition definition) {
 | 
|      CodeGenerator codeGen = new CodeGenerator(glue, work.registry);
 | 
|      Element element = work.element;
 | 
|      js.Fun code = codeGen.buildFunction(definition);
 | 
| @@ -346,16 +341,16 @@ class CpsFunctionCompiler implements FunctionCompiler {
 | 
|  
 | 
|    Iterable<CompilerTask> get tasks {
 | 
|      return <CompilerTask>[
 | 
| -        cpsBuilderTask,
 | 
| -        cpsOptimizationTask,
 | 
| -        treeBuilderTask,
 | 
| -        treeOptimizationTask]
 | 
| -      ..addAll(fallbackCompiler.tasks);
 | 
| +      cpsBuilderTask,
 | 
| +      cpsOptimizationTask,
 | 
| +      treeBuilderTask,
 | 
| +      treeOptimizationTask
 | 
| +    ]..addAll(fallbackCompiler.tasks);
 | 
|    }
 | 
|  
 | 
|    js.Node attachPosition(js.Node node, AstElement element) {
 | 
| -    return node.withSourceInformation(
 | 
| -        sourceInformationFactory.createBuilderForContext(element)
 | 
| -            .buildDeclaration(element));
 | 
| +    return node.withSourceInformation(sourceInformationFactory
 | 
| +        .createBuilderForContext(element)
 | 
| +        .buildDeclaration(element));
 | 
|    }
 | 
|  }
 | 
| 
 |