
**Do you want to request a *feature* or report a *bug*?**
Bug

**What is the current behavior?**
The shallow renderer defaults a class component's state to empty object if it's not set. "Real" renderers don't seem to do this, so a component can render successfully in the shallow renderer, but fail at runtime in the browser with a null reference error.

**If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.**
Here is ReactDOM's behavior (crashes reading an uninitialized state value): https://codesandbox.io/s/4jv82zmp0
Here is the shallow renderer behavior (component able to render): https://codesandbox.io/s/pp733nrxzq

**What is the expected behavior?**
They initialize state in the same way.

**Which versions of React, and which browser / OS are affected by this issue? Did this work in previous versions of React?**
React 16. This wasn't an issue in React 15.
if (this._instance) {
      this._updateClassComponent(element.type, element.props, context);
    } else {
      if (shouldConstruct(element.type)) {
        this._instance = new element.type(
          element.props,
          context,
          this._updater,
        );
        if (element.type.hasOwnProperty('contextTypes')) {
          currentlyValidatingElement = element;
          checkPropTypes(
            element.type.contextTypes,
            context,
            'context',
            getName(element.type, this._instance),
            getStackAddendum,
          );
          currentlyValidatingElement = null;
        }
        this._mountClassComponent(element.props, context);
      } else {
        this._rendered = element.type(element.props, context);
      }
    }
    this._rendering = false;
    this._updater._invokeCallbacks();
    return this.getRenderOutput();
  }
  unmount() {