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:         addStatement(make.functionInvocation(finallyName,
              [make.functionExpression([], returnBlock)]));
        };
        ek = make.parenthesizedExpression(
            make.functionExpression([exceptionName, stackTraceName],
                make.functionInvocation(finallyName,
                    [make.functionExpression([],
                         make.functionInvocation(ek,
                             [make.identifier(exceptionName),
                              make.identifier(stackTraceName)]))])));
        sk = () {
          addStatement(make.functionInvocation(finallyName,
              [make.identifier(joinName)]));
  
negative.code:     return visit(node.expression)(ek, (expr) {
        addStatement(make.methodInvocation(expr, 'then',
            [_reifyAwaitContinuation(sk, ek),
             make.namedExpression('onError', ek.reify())]));
      });
    };
  
  