anchor.diff:      currentBlock = savedBlock;
       addStatement(
           AstFactory.functionDeclarationStatement(null, null, breakName,
  -            functionExpression(['_'], breakBlock)));
  +            functionExpression([newName('x')], breakBlock)));
       addStatement(
           AstFactory.functionDeclarationStatement(null, null, loopName,
               functionExpression(parameters.map((e) => e.name).toList(),
  
positive.code:                                         identifier('wait')),
                    [AstFactory.listLiteral([])]),
                'then',
                [functionExpression (['_'],
                    AstFactory.functionExpressionInvocation(
                        identifier(loopName),
                        parameters))]));
  
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);
  