Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart

Issue 716823002: Set up a stub pipline for using the new cps-based ir to generate js. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart
index b7ac48ed878caffb5d9ab201c12dc28fb7209306..69581d69697d4fdf4fc16032c9007ae06e8b7f44 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_builder_visitor.dart
@@ -33,27 +33,33 @@ class IrBuilderTask extends CompilerTask {
ir.FunctionDefinition getIr(Element element) => nodes[element.implementation];
+ ir.FunctionDefinition buildNode(AstElement element) {
+ if (!canBuild(element)) return null;
+ TreeElements elementsMapping = element.resolvedAst.elements;
+ element = element.implementation;
+ return compiler.withCurrentElement(element, () {
+ SourceFile sourceFile = elementSourceFile(element);
+ IrBuilderVisitor builder =
+ new IrBuilderVisitor(elementsMapping, compiler, sourceFile);
+ ir.FunctionDefinition function;
+ function = builder.buildFunction(element);
+
+ if (function != null) {
+ compiler.tracer.traceCompilation(element.name, null);
+ compiler.tracer.traceGraph("IR Builder", function);
+ }
+ return function;
+ });
+ }
+
void buildNodes({bool useNewBackend: false}) {
if (!irEnabled(useNewBackend: useNewBackend)) return;
floitsch 2014/11/12 11:03:19 Why does the builder need to know about backends?
sigurdm 2014/11/13 08:29:41 I agree - I removed it - it was only used from tes
measure(() {
Set<Element> resolved = compiler.enqueuer.resolution.resolvedElements;
resolved.forEach((AstElement element) {
- if (canBuild(element)) {
- TreeElements elementsMapping = element.resolvedAst.elements;
- element = element.implementation;
- compiler.withCurrentElement(element, () {
- SourceFile sourceFile = elementSourceFile(element);
- IrBuilderVisitor builder =
- new IrBuilderVisitor(elementsMapping, compiler, sourceFile);
- ir.FunctionDefinition function;
- function = builder.buildFunction(element);
-
- if (function != null) {
- nodes[element] = function;
- compiler.tracer.traceCompilation(element.name, null);
- compiler.tracer.traceGraph("IR Builder", function);
- }
- });
+ ir.FunctionDefinition functionDefinition = buildNode(element);
+ if (functionDefinition != null) {
+ nodes[element] = functionDefinition;
}
});
});

Powered by Google App Engine
This is Rietveld 408576698