Three points from discussion in https://github.com/reactjs/react-redux/issues/756:

* Due to https://bugs.chromium.org/p/chromium/issues/detail?id=701371, environments like CodeSandbox show `Error: null` in our “React caught an error” warning. Let’s consider skipping both as they’re not very useful and look like a bug. `Error: null` looks like a separate error and draws attention away from the real error just above.

* In any case we should probably not print `The error was thrown at:` if we don’t have a JS stack.

* There is a related issue. What do we pass to error boundary if we caught `null`? It seems that most error boundaries will intuitively do something like `if (this.state.error)` or read `error.message`, which `null` will break. There are other falsy values too like `''` and `undefined`. My proposal is we always wrap primitives into our own `Error` objects that we pass to the boundary.
componentWillMount() {
          throw Error('componentWillMount error');
        }
        render() {
          return <div />;
        }
      }
      try {
        ReactNoop.render(<div><span><ErrorThrowingComponent /></span></div>);
        ReactNoop.flushDeferredPri();
      } catch (error) {}
      expect(console.error.calls.count()).toBe(1);
      const errorMessage = console.error.calls.argsFor(0)[0];
      expect(errorMessage).toContain(
        'React caught an error thrown by ErrorThrowingComponent. ' +
          'You should fix this error in your code. ' +
          'Consider adding an error boundary to your tree to customize error handling behavior.',
      );
      expect(errorMessage).toContain('Error: componentWillMount error');
      expect(normalizeCodeLocInfo(errorMessage)).toContain(
        'The error is located at: \n' +
          '    in ErrorThrowingComponent (at **)\n' +
          '    in span (at **)\n' +
          '    in div (at **)',
      );
    });
    it('should log errors that occur during the commit phase', () => {
      initReactFiberErrorLoggerMock();
      spyOn(console, 'error');
      class ErrorThrowingComponent extends React.Component {