anchor.diff:      var joinName = newName('join');
       ast.FunctionExpression joinFun = reifyStatementCont(s);
       joinFun.parameters = AstFactory.formalParameterList(
  -        [AstFactory.simpleFormalParameter3('_')]);
  +        [AstFactory.simpleFormalParameter3(newName('x'))]);
       addStatement(
           AstFactory.functionDeclarationStatement(null, null, joinName, joinFun));
   
  
positive.code:                                       identifier('wait')),
                  [AstFactory.listLiteral([])]),
              'then',
              [functionExpression(['_'], bodyBlock)])]),
          block([AstFactory.functionExpressionInvocation(
              identifier(breakName), [nullLiteral()])])));
      });
  
negative.code:     var savedContinueTargets = continueTargets;
      breakTargets = breakTargets.map((expr) {
        return AstFactory.parenthesizedExpression(
                functionExpression([newName('x')],
                    AstFactory.functionExpressionInvocation(
                        identifier(finallyName), [expr, nullLiteral()])));
      }).toList();
      continueTargets = continueTargets.map((expr) {
        return AstFactory.parenthesizedExpression(
            functionExpression([newName('x')],
                 AstFactory.functionExpressionInvocation(
                    identifier(finallyName), [expr, nullLiteral()])));
      }).toList();
      if (node.catchClauses.isNotEmpty) {
        assert(node.catchClauses.length == 1);
  