I realized that the refactor to use ReactDebugCurrentFrame as a decoupled stack frame for error messages is not reentrant: https://github.com/facebook/react/pull/10105/files#r127573520

Fiber is not reentrant but other renderers might be. The synchronous server renderer is atm.

We should add tests for warnings between renderers, such as calling a server-render from within a client render, and update the set/reset callsites to use push/pop instead to account for that.

throw new Error('Expected this test to run in a Node environment.');
    }
    jest.resetModules();
    expect(() => {
      require('react-dom');
    }).not.toThrow();
  });
  it('includes a useful stack in warnings', () => {
    function A() {
      return null;
    }
    function B() {
      return (
        <font>
          <C>
            <span ariaTypo="no" />
          </C>
        </font>
      );
    }
    class C extends React.Component {
      render() {
        return <b>{this.props.children}</b>;
      }
    }
    function Child() {
      return [<A key="1" />, <B key="2" />, <span ariaTypo2="no" />];
    }
    function App() {