Any warnings driven off of `warnAboutDeprecatedLifecycles` should use `shared/lowPriorityWarning` rather than `fbjs/lib/warning` to avoid thrashing automated tests.
if (__DEV__) {
      warning(
        this.providerIndex > -1 &&
          provider === this.providerStack[this.providerIndex],
        'Unexpected pop.',
      );
    }
    this.providerStack[this.providerIndex] = null;
    this.providerIndex -= 1;
    const context: ReactContext<any> = provider.type.context;
    if (this.providerIndex < 0) {
      context.currentValue = context.defaultValue;
    } else {
      
      const previousProvider: ReactProvider<any> = (this.providerStack[
        this.providerIndex
      ]: any);
      context.currentValue = previousProvider.props.value;
    }
  }
  read(bytes: number): string | null {
    if (this.exhausted) {
      return null;
    }
    let out = '';
    while (out.length < bytes) {
      if (this.stack.length === 0) {
        this.exhausted = true;
        break;
      }