defineDeprecationWarning = function (methodName, info) {
    if (canDefineProperty) {
      Object.defineProperty(ReactComponent.prototype, methodName, {
        get: function () {
          lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
          return undefined;
        }
      });
    }
  }
Forces an update. This should only be invoked when it is known with
certainty that we are **not** in a DOM transaction.

You may want to call this when you know that some deeper aspect of the
component's state has changed but `setState` was not called.

This will not invoke `shouldComponentUpdate`, but it will invoke
`componentWillUpdate` and `componentDidUpdate`.

@param {ReactClass} publicInstance The instance that should rerender.
@internal