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`
var updateQueue = transaction.getUpdateQueue();
    
    var doConstruct = shouldConstruct(Component);
    var inst = this._constructComponent(
      doConstruct,
      publicProps,
      publicContext,
      updateQueue,
    );
    var renderedElement;
    
    if (!doConstruct && (inst == null || inst.render == null)) {
      renderedElement = inst;
      if (__DEV__) {
        warning(
          !Component.childContextTypes,
          '%s(...): childContextTypes cannot be defined on a functional component.',
          Component.displayName || Component.name || 'Component',
        );
      }
      invariant(
        inst === null || inst === false || React.isValidElement(inst),
        '%s(...): A valid React element (or null) must be returned. You may have ' +
          'returned undefined, an array or some other invalid object.',
        Component.displayName || Component.name || 'Component',
      );
      inst = new StatelessComponent(Component);
      this._compositeType = ReactCompositeComponentTypes.StatelessFunctional;
    } else {
      if (isPureComponent(Component)) {