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

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

Issue 2905463002: Transform async code only for source libraries. (Closed)
Patch Set: 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..1fd144ec44da05a87a70ad684d0199e318119eb0 100644
--- a/pkg/kernel/lib/transformations/continuation.dart
+++ b/pkg/kernel/lib/transformations/continuation.dart
@@ -12,10 +12,16 @@ import '../visitor.dart';
import 'async.dart';
-Program transformProgram(Program program) {
+Program transformProgram(Program program,
Siggi Cherem (dart-lang) 2017/05/23 22:06:17 API design question for Kevin/Peter: Would you ra
+ {bool libraryFilter(Library library)}) {
var helper = new HelperNodes.fromProgram(program);
var rewriter = new RecursiveContinuationRewriter(helper);
- return rewriter.rewriteProgram(program);
+ for (var library in program.libraries) {
+ if (libraryFilter == null || libraryFilter(library)) {
+ rewriter.rewriteLibrary(library);
+ }
+ }
+ return program;
}
class RecursiveContinuationRewriter extends Transformer {
@@ -32,6 +38,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:

Powered by Google App Engine
This is Rietveld 408576698