anchor.diff:     * and the subscriptions' timers can be paused individually.
      */
     Stream<T> timeout(Duration timeLimit, {void onTimeout(EventSink<T> sink)?}) {
  -    _StreamControllerBase<T> controller = isBroadcast
  -        ? new _SyncBroadcastStreamController<T>(null, null)
  -        : new _SyncStreamController<T>(null, null, null, null);
  +    _StreamControllerBase<T> controller;
  +    if (isBroadcast) {
  +      controller = new _SyncBroadcastStreamController<T>(null, null);
  +    } else {
  +      controller = new _SyncStreamController<T>(null, null, null, null);
  +    }
   
       Zone zone = Zone.current;
       // Register callback immediately.
  
positive.code:       FutureOr<Null> add(E value) {
          controller.add(value);
        }
        final addError = controller._addError;
        subscription.onData((T event) {
          FutureOr<E> newValue;
  
negative.code:    * The returned stream is a broadcast stream if this stream is.
     */
    Stream<E> asyncExpand<E>(Stream<E> convert(T event)) {
      _StreamControllerBase<E> controller;
      if (isBroadcast) {
        controller = _SyncBroadcastStreamController<E>(null, null);
      } else {
        controller = _SyncStreamController<E>(null, null, null, null);
      }
  
      controller.onListen = () {
        StreamSubscription<T> subscription = this.listen(null,
  