anchor.diff:        withExpressions([node.init, node.condition, node.update],
             (List<js.Expression> transformed) {
           addStatement(new js.For(transformed[0], transformed[1], transformed[2],
  -            translateInBlock(node.body)));
  +            translateToStatement(node.body)));
         });
         insideUntranslatedBreakable = oldInsideUntranslated;
         return;
  
positive.code:   /// See the comments of [rewriteFunction] for more explanation.
    void visitTry(js.Try node) {
      if (!shouldTransform(node)) {
        js.Block body = translateInBlock(node.body);
        js.Catch catchPart = (node.catchPart == null)
            ? null
            : new js.Catch(node.catchPart.declaration,
                translateInBlock(node.catchPart.body));
        js.Block finallyPart = (node.finallyPart == null)
            ? null
            : translateInBlock(node.finallyPart);
        addStatement(new js.Try(body, catchPart, finallyPart));
        return;
      }
  
negative.code:       bool oldInsideUntranslated = insideUntranslatedBreakable;
        insideUntranslatedBreakable = true;
        withExpression(node.condition, (js.Expression condition) {
          addStatement(new js.While(condition, translateToStatement(node.body)));
        }, store: false);
        insideUntranslatedBreakable = oldInsideUntranslated;
        return;
  