anchor.diff:      if (!controller.isClosed) controller.add(event);
     }
   
  +  static _tryRun(void delegate(), void onError(err)) {
  +    try {
  +      delegate();
  +    }
  +    catch (ex) {
  +      onError(ex);
  +    }
  +  }
  +
     /**
      * Merges two stream into one, the merged stream will forward any elements and errors received from the input streams.
      *
  
positive.code:     var acc = seed;
  
      void handleNewEvent(x) {
        acc = accumulator(acc, x);
        _tryAdd(controller, acc);
      }
  
      input.listen(handleNewEvent,
  
negative.code: 
      void handleNewEvent() {
        if (item1 != null && item2 != null) {
          _tryRun(() => _tryAdd(controller, selector(item1, item2)), onError);
        }
      }
  
  