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

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

Issue 1353843002: dart2js cps: Support sync* and yield. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 3 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/compiler/lib/src/cps_ir/cps_ir_tracer.dart
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
index 5240db91ecc1ba7d9ef1f4ad67522a8b4fe94077..b15f510c3dd7645b764cf94701af496c11831ee8 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
@@ -397,6 +397,13 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
}
@override
+ visitYield(cps_ir.Yield node) {
+ String value = formatReference(node.input);
+ String continuation = formatReference(node.continuation);
+ return 'Yield $value $continuation';
+ }
+
+ @override
visitRefinement(cps_ir.Refinement node) {
String value = formatReference(node.value);
return 'Refinement $value ${node.type}';
@@ -675,9 +682,15 @@ class BlockCollector implements cps_ir.Visitor {
@override
visitAwait(cps_ir.Await node) {
- unexpectedNode(node);
+ addEdgeToContinuation(node.continuation);
+ }
+
+ @override
+ visitYield(cps_ir.Yield node) {
+ addEdgeToContinuation(node.continuation);
}
+ @override
visitRefinement(cps_ir.Refinement node) {
unexpectedNode(node);
}
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart ('k') | pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698