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.

constructor() {
          super();
        }
        render() {
          return <div>{this.props.text}</div>;
        }
      }
      const markup = ReactDOMServer.renderToString(
        <Component text="hello, world" />,
      );
      expect(markup).toContain('hello, world');
    });
    it('renders with context when using custom constructor', () => {
      class Component extends React.Component {
        constructor() {
          super();
        }
        render() {
          return <div>{this.context.text}</div>;
        }
      }
      Component.contextTypes = {
        text: PropTypes.string.isRequired,
      };
      class ContextProvider extends React.Component {