| 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);
|
| + }
|
| }
|
|
|