anchor.diff:      out("(");
       visitNestedExpression(loop.condition, EXPRESSION,
                             newInForInit: false, newAtStatementBegin: false);
  -    outLn(");");
  +    outLn(")");
  +    pendingSemicolon = true;
     }
   
     visitContinue(Continue node) {
       if (node.targetLabel == null) {
  -      outIndentLn("continue;");
  -    } else {
  -      outIndentLn("continue ${node.targetLabel};");
  -    }
  +      outIndentLn("continue");
  +    } else {
  +      outIndentLn("continue ${node.targetLabel}");
  +    }
  +    pendingSemicolon = true;
     }
   
     visitBreak(Break node) {
       if (node.targetLabel == null) {
  -      outIndentLn("break;");
  -    } else {
  -      outIndentLn("break ${node.targetLabel};");
  -    }
  +      outIndentLn("break");
  +    } else {
  +      outIndentLn("break ${node.targetLabel}");
  +    }
  +    pendingSemicolon = true;
     }
   
     visitReturn(Return node) {
       if (node.value == null) {
  -      outIndentLn("return;");
  -    } else {
  -      outIndent("return ");
  +      outIndentLn("return");
  +    } else {
  +      outIndent("return");
  +      pendingSpace = true;
         visitNestedExpression(node.value, EXPRESSION,
                               newInForInit: false, newAtStatementBegin: false);
  -      outLn(";");
  -    }
  +    }
  +    pendingSemicolon = true;
     }
   
     visitThrow(Throw node) {
  -    outIndent("throw ");
  +    outIndent("throw");
  +    pendingSpace = true;
       visitNestedExpression(node.expression, EXPRESSION,
                             newInForInit: false, newAtStatementBegin: false);
  -    outLn(";");
  +    pendingSemicolon = true;
     }
   
     visitTry(Try node) {
  
positive.code:     out("(");
      visitNestedExpression(loop.leftHandSide, EXPRESSION,
                            newInForInit: true, newAtStatementBegin: false);
      out(" in ");
      visitNestedExpression(loop.object, EXPRESSION,
                            newInForInit: false, newAtStatementBegin: false);
      out(")");
  
negative.code:   }
  
    visitCase(Case node) {
      outIndent("case");
      pendingSpace = true;
      visitNestedExpression(node.expression, EXPRESSION,
                            newInForInit: false, newAtStatementBegin: false);
      outLn(":");
  