newReadableStreamWithController(
      underlyingSource = /** @type {!ReadableStreamUnderlyingSource} */ ({})) {
    let controller;
    const start = underlyingSource.start;
    underlyingSource = Object.assign({}, underlyingSource, {
      start(ctlr) {
        controller = ctlr;
        return start && start(ctlr);
      },
    });
    const stream = this.newReadableStream(underlyingSource);
    return {stream, controller};
  }
@param {!ReadableStreamUnderlyingSource=} underlyingSource
@return {{stream: !ReadableStream<string>, controller:
    !ReadableStreamDefaultController<string>}}