Currently, if you define `shouldComponentUpdate` on `React.PureComponent` nothing bad happens and it acts like `React.Component` https://jsfiddle.net/jekmdfva/

We should probably warn in dev since it defaults the point of `PureComponent`
ReactReconciler.unmountComponent(
          prevComponentInstance,
          safely,
          false ,
        );
      }
      if (__DEV__) {
        if (debugID !== 0) {
          var childDebugIDs = child._debugID !== 0 ? [child._debugID] : [];
          ReactInstrumentation.debugTool.onSetChildren(debugID, childDebugIDs);
        }
      }
      this._replaceNodeWithMarkup(
        oldHostNode,
        nextMarkup,
        prevComponentInstance,
      );
    }
  },
  /**
   * Overridden in shallow rendering.
   *
   * @protected
   */
  _replaceNodeWithMarkup: function(oldHostNode, nextMarkup, prevInstance) {
    ReactComponentEnvironment.replaceNodeWithMarkup(
      oldHostNode,
      nextMarkup,
      prevInstance,
    );