function newReadableStream(underlyingSource = {}, strategy = {}) {
  /** @const {!ReadableStreamSource} */
  const source = {};
  if (underlyingSource.start) {
    source.start = (controller) => {
      return underlyingSource.start(
          new NativeReadableStreamDefaultController(controller));
    };
  }
  if (underlyingSource.pull) {
    source.pull = (controller) => {
      return underlyingSource.pull(
          new NativeReadableStreamDefaultController(controller));
    };
  }
  if (underlyingSource.cancel) {
    source.cancel = underlyingSource.cancel;
  }
  const stream = new ReadableStream(source, strategy);
  return new NativeReadableStream(stream);
}
@param {!fullTypes.ReadableStreamUnderlyingSource<T>=} underlyingSource
@param {!fullTypes.ReadableStreamStrategy<T>=} strategy
@return {!NativeReadableStream<T>}
@suppress {strictMissingProperties}
@template T