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

Unified Diff: pkg/kernel/lib/transformations/continuation.dart

Issue 2905463002: Transform async code only for source libraries. (Closed)
Patch Set: Process only source libraries in KernelTarget. Created 3 years, 7 months 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/kernel/lib/transformations/continuation.dart
diff --git a/pkg/kernel/lib/transformations/continuation.dart b/pkg/kernel/lib/transformations/continuation.dart
index 72167987b2009382bbc9532e1c8ab8341261fc2e..4e4cdbba40809ca69de429db88538b34cbc7ddfa 100644
--- a/pkg/kernel/lib/transformations/continuation.dart
+++ b/pkg/kernel/lib/transformations/continuation.dart
@@ -12,6 +12,14 @@ import '../visitor.dart';
import 'async.dart';
+void transformLibraries(CoreTypes coreTypes, List<Library> libraries) {
+ var helper = new HelperNodes.fromCoreTypes(coreTypes);
+ var rewriter = new RecursiveContinuationRewriter(helper);
+ for (var library in libraries) {
+ rewriter.rewriteLibrary(library);
+ }
+}
+
Program transformProgram(Program program) {
var helper = new HelperNodes.fromProgram(program);
var rewriter = new RecursiveContinuationRewriter(helper);
@@ -32,6 +40,10 @@ class RecursiveContinuationRewriter extends Transformer {
return node.accept(this);
}
+ Library rewriteLibrary(Library node) {
+ return node.accept(this);
+ }
+
visitFunctionNode(FunctionNode node) {
switch (node.asyncMarker) {
case AsyncMarker.Sync:
@@ -912,8 +924,7 @@ class HelperNodes {
this.awaitHelper,
this.coreTypes);
- factory HelperNodes.fromProgram(Program program) {
- var coreTypes = new CoreTypes(program);
+ factory HelperNodes.fromCoreTypes(CoreTypes coreTypes) {
return new HelperNodes(
coreTypes.asyncLibrary,
coreTypes.coreLibrary,
@@ -932,4 +943,9 @@ class HelperNodes {
coreTypes.awaitHelperProcedure,
coreTypes);
}
+
+ factory HelperNodes.fromProgram(Program program) {
+ var coreTypes = new CoreTypes(program);
+ return new HelperNodes.fromCoreTypes(coreTypes);
+ }
}

Powered by Google App Engine
This is Rietveld 408576698