anchor.diff:      visit(node.body)((v) {
         addStatement(make.assignmentExpression(
             make.identifier(inLoopName), make.booleanLiteral(false)));
  -      addStatement(make.returnStatement(
  -          make.methodInvocation(make.identifier(completerName),
  -              'complete', [r(v)])));
  +      return make.methodInvocation(make.identifier(
  +          completerName), 'complete', [r(v)]);
       }, () {
         addStatement(make.functionInvocation(continueName));
         addStatement(make.returnStatement());
  
positive.code:       continueTargets = continueTargets.map(newJumpTarget).toList();
        var ret = r;
        r = (v) {
          addStatement(make.returnStatement(
              make.functionExpression([], applyExpressionCont(ret, v))));
        };
        s = () {
          addStatement(make.returnStatement(make.identifier(joinName)));
  
negative.code:       visit(node.body)((v) {
          addStatement(make.assignmentExpression(
            make.identifier(inLoopName), make.booleanLiteral(false)));
          return make.methodInvocation(
              make.identifier(completerName), 'complete', [r(v)]);
        }, () {
          addStatement(make.functionInvocation(continueName));
          addStatement(make.returnStatement());
  