Chromium Code Reviews| 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: |