Any warnings driven off of `warnAboutDeprecatedLifecycles` should use `shared/lowPriorityWarning` rather than `fbjs/lib/warning` to avoid thrashing automated tests.
: element.type === null ? 'null' : typeof element.type,
    );
    if (this._rendering) {
      return;
    }
    this._rendering = true;
    this._element = element;
    this._context = getMaskedContext(element.type.contextTypes, context);
    if (this._instance) {
      this._updateClassComponent(element, this._context);
    } else {
      if (shouldConstruct(element.type)) {
        this._instance = new element.type(
          element.props,
          this._context,
          this._updater,
        );
        if (__DEV__) {
          if (typeof element.type.getDerivedStateFromProps === 'function') {
            if (
              this._instance.state === null ||
              this._instance.state === undefined
            ) {
              const componentName =
                getName(element.type, this._instance) || 'Unknown';
              if (!didWarnAboutUninitializedState[componentName]) {
                warning(
                  false,
                  '%s: Did not properly initialize state during construction. ' +
                    'Expected state to be an object, but it was %s.',