anchor.diff:      visit(node.block)((v) {
         addStatement(make.methodInvocation(make.identifier(completerName),
             'complete', [v]));
  -    }, make.identifier(completerName, 'completeError'), () {
  +    }, new NamedErrorContinuation(completerName, 'completeError'), () {
         addStatement(make.methodInvocation(make.identifier(completerName),
             'complete', []));
       });
  
positive.code:     var catchName = _translateCatchClauses(node.catchClauses, rk, ek, sk);
  
      var tryBlock = currentBlock = make.emptyBlock();
      if (catchName != null) ek = make.identifier(catchName);
      visit(node.body)(rk, ek, sk);
  
      currentBlock = savedBlock;
  
negative.code:         addStatement(make.functionInvocation(finallyName,
              [make.functionExpression([], returnBlock)]));
        };
        var err = ek;
        ek = new AnonymousErrorContinuation (this, (e, s) {
          return make.functionInvocation(finallyName,
              [make.functionExpression([], err.apply(e, s))]);
        });
        sk = () {
          addStatement(make.functionInvocation(finallyName,
              [make.identifier(joinName)]));
  