| Index: frog/leg/ssa/codegen.dart
|
| diff --git a/frog/leg/ssa/codegen.dart b/frog/leg/ssa/codegen.dart
|
| index 0f58f29cd7a6ee9c84bf7f883acd856c5dddfdca..81a7080bce84833540f69824ab931b8aaa0d4f35 100644
|
| --- a/frog/leg/ssa/codegen.dart
|
| +++ b/frog/leg/ssa/codegen.dart
|
| @@ -249,16 +249,21 @@ class SsaCodeGenerator implements HVisitor {
|
| addIndentation();
|
| for (LabelElement label in labeledBlockInfo.labels) {
|
| if (labeledBlockInfo.isContinue) {
|
| - addContinueLabel(label);
|
| + if (label.isContinueTarget) {
|
| + addContinueLabel(label);
|
| + buffer.add(':');
|
| + }
|
| } else {
|
| - addBreakLabel(label);
|
| + if (label.isBreakTarget) {
|
| + addBreakLabel(label);
|
| + buffer.add(':');
|
| + }
|
| }
|
| - buffer.add(':');
|
| }
|
| TargetElement target = labeledBlockInfo.target;
|
| if (target.isSwitch) {
|
| addImplicitBreakLabel(target);
|
| - buffer.add(@':');
|
| + buffer.add(':');
|
| }
|
| if (labeledBlockInfo.isContinue) {
|
| addImplicitContinueLabel(target);
|
| @@ -297,11 +302,13 @@ class SsaCodeGenerator implements HVisitor {
|
| }
|
|
|
| currentBlock = node;
|
| +
|
| if (node.isLoopHeader()) {
|
| // While loop will be closed by the conditional loop-branch.
|
| // TODO(floitsch): HACK HACK HACK.
|
| beginLoop(node);
|
| }
|
| +
|
| HInstruction instruction = node.first;
|
| while (instruction != null) {
|
| if (instruction is HGoto || instruction is HExit || instruction is HTry) {
|
|
|