anchor.diff:  
     visitAwaitExpression(ast.AwaitExpression node) => (ek, sk) {
       return visit(node.expression)(ek, (expr) {
  +      if (currentStream != null) {
  +        expr = addTempDeclaration(expr);
  +        addStatement(make.methodInvocation(
  +            make.identifier(currentStream), 'pause', []));
  +      }
         addStatement(make.methodInvocation(expr, 'then',
             [_reifyAwaitContinuation(sk, ek),
              make.namedExpression('onError', ek.reify())]));
  
positive.code:     continueTargets = <JumpTarget>[];
      currentExceptionName = null;
      currentStackTraceName = null;
      awaits = analysis.awaits;
      labels = analysis.labels;
      names = analysis.names;
  
negative.code:     var parameter = newName('x');
      var savedBlock = currentBlock;
      var tryBlock = currentBlock = make.emptyBlock();
      if (currentStream != null) {
        addStatement(make.methodInvocation(
            make.identifier(currentStream), 'resume', []));
      }
      sk(make.identifier(parameter));
  
      currentBlock = savedBlock;
  