| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /// Generate code using the cps-based IR pipeline. | 5 /// Generate code using the cps-based IR pipeline. |
| 6 library code_generator_task; | 6 library code_generator_task; |
| 7 | 7 |
| 8 import '../js_backend.dart';import '../../dart2jslib.dart'; | 8 import 'glue.dart'; |
| 9 import 'codegen.dart'; |
| 10 |
| 11 import '../js_backend.dart'; |
| 12 import '../../dart2jslib.dart'; |
| 9 import '../../source_file.dart'; | 13 import '../../source_file.dart'; |
| 10 import '../../cps_ir/cps_ir_nodes.dart' as cps; | 14 import '../../cps_ir/cps_ir_nodes.dart' as cps; |
| 11 import '../../cps_ir/cps_ir_builder.dart'; | 15 import '../../cps_ir/cps_ir_builder.dart'; |
| 12 import '../../tree_ir/tree_ir_nodes.dart' as tree_ir; | 16 import '../../tree_ir/tree_ir_nodes.dart' as tree_ir; |
| 13 import '../../tree/tree.dart' as ast; | 17 import '../../tree/tree.dart' as ast; |
| 14 import '../../scanner/scannerlib.dart' as scanner; | 18 import '../../scanner/scannerlib.dart' as scanner; |
| 15 import '../../elements/elements.dart'; | 19 import '../../elements/elements.dart'; |
| 16 import '../../closure.dart'; | 20 import '../../closure.dart'; |
| 17 import '../../js/js.dart' as js; | 21 import '../../js/js.dart' as js; |
| 18 import '../../source_map_builder.dart'; | 22 import '../../source_map_builder.dart'; |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 traceGraph('Loop rewriter', treeNode); | 142 traceGraph('Loop rewriter', treeNode); |
| 139 new LogicalRewriter().rewrite(treeNode); | 143 new LogicalRewriter().rewrite(treeNode); |
| 140 traceGraph('Logical rewriter', treeNode); | 144 traceGraph('Logical rewriter', treeNode); |
| 141 new backend_ast_emitter.UnshadowParameters().unshadow(treeNode); | 145 new backend_ast_emitter.UnshadowParameters().unshadow(treeNode); |
| 142 traceGraph('Unshadow parameters', treeNode); | 146 traceGraph('Unshadow parameters', treeNode); |
| 143 return treeNode; | 147 return treeNode; |
| 144 } | 148 } |
| 145 | 149 |
| 146 js.Fun compileToJavaScript(CodegenWorkItem work, | 150 js.Fun compileToJavaScript(CodegenWorkItem work, |
| 147 tree_ir.FunctionDefinition definition) { | 151 tree_ir.FunctionDefinition definition) { |
| 148 CodeGenerator codeGen = new CodeGenerator(); | 152 CodeGenerator codeGen = |
| 153 new CodeGenerator(new Glue(compiler), work.registry); |
| 149 | 154 |
| 150 codeGen.buildFunction(definition); | 155 codeGen.buildFunction(definition); |
| 151 return buildJavaScriptFunction(work.element, | 156 return buildJavaScriptFunction(work.element, |
| 152 codeGen.parameters, | 157 codeGen.parameters, |
| 153 codeGen.body); | 158 codeGen.body); |
| 154 } | 159 } |
| 155 | 160 |
| 156 Iterable<CompilerTask> get tasks { | 161 Iterable<CompilerTask> get tasks { |
| 157 // TODO(sigurdm): Make a better list of tasks. | 162 // TODO(sigurdm): Make a better list of tasks. |
| 158 return <CompilerTask>[irBuilderTask]..addAll(fallbackCompiler.tasks); | 163 return <CompilerTask>[irBuilderTask]..addAll(fallbackCompiler.tasks); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 SourceFile sourceFileOfElement(Element element) { | 196 SourceFile sourceFileOfElement(Element element) { |
| 192 return element.implementation.compilationUnit.script.file; | 197 return element.implementation.compilationUnit.script.file; |
| 193 } | 198 } |
| 194 | 199 |
| 195 js.Fun buildJavaScriptFunction(FunctionElement element, | 200 js.Fun buildJavaScriptFunction(FunctionElement element, |
| 196 List<js.Parameter> parameters, | 201 List<js.Parameter> parameters, |
| 197 js.Block body) { | 202 js.Block body) { |
| 198 return attachPosition(new js.Fun(parameters, body), element); | 203 return attachPosition(new js.Fun(parameters, body), element); |
| 199 } | 204 } |
| 200 } | 205 } |
| OLD | NEW |