When consuming React from source with the Google Closure Compiler, [this bit](https://github.com/facebook/react/blob/eca5b1d48e71218800156ce474ec79b990b09fbd/src/renderers/shared/stack/reconciler/instantiateReactComponent.js#L26-L32) of code isn't being run in the correct order.

It seems like the Google Closure Compiler transformation is changing the function to a `var` assignment. It messes up the behavior because the original `instantiateReactComponent` function is hoisted. My thought is it's related to the fact that the `instantiateReactComponent` function is exported from that module. 

Anyway, this produces an error because the assignment to `ReactCompositeComponentWrapper.prototype` is now in the wrong order (assignment -> function definition, when we want definition -> assignment).

This may also be related or the root cause of #8887.

The most straightforward solution is to bring the `Object.assign` call after the function is declared, which I've verified works correctly. I'm happy to submit a PR with the described approach.
if (owner) {
    var name = owner.getName();
    if (name) {
      return '\n\nCheck the render method of `' + name + '`.';
    }
  }
  return '';
}
/**
 * Check if the type reference is a known internal type. I.e. not a user
 * provided composite type.
 *
 * @param {function} type
 * @return {boolean} Returns true if this is a valid internal type.
 */
function isInternalComponentType(type) {