Follow up from https://github.com/facebook/react/pull/11616.

Here's one I found. These two invariants:

https://github.com/facebook/react/blob/7e7127387ba64f57299eaff8656542cea6fb3a2d/packages/react-reconciler/src/ReactFiberClassComponent.js#L330-L343

are in a function that's behind a DEV block:

https://github.com/facebook/react/blob/7e7127387ba64f57299eaff8656542cea6fb3a2d/packages/react-reconciler/src/ReactFiberClassComponent.js#L447-L449

I don't think this is intentional, but need to verify.

There may be more. I'll use this issue to track while https://github.com/facebook/react/pull/11616 preserves existing behavior.
if (__DEV__) {
      expect(() => test(React.createElement(ArrayState), 'SPAN', ''))
      .toThrowError(
        'ArrayState.state: must be set to an object or null'
      );
      expect(() => test(React.createElement(StringState), 'SPAN', ''))
      .toThrowError(
        'StringState.state: must be set to an object or null'
      );
      expect(() => test(React.createElement(NumberState), 'SPAN', ''))
      .toThrowError(
        'NumberState.state: must be set to an object or null'
      );
    } else {
      
      
      
      
      expect(() => test(React.createElement(ArrayState), 'SPAN', ''))
      .not.toThrowError();
      expect(() => test(React.createElement(StringState), 'SPAN', ''))
      .not.toThrowError();
      expect(() => test(React.createElement(NumberState), 'SPAN', ''))
      .not.toThrowError();
    }
  });
  it('should render with null in the initial state property', function() {
    test(React.createElement(NullState), 'SPAN', '');
  });
  it('setState through an event handler', function() {