function _renderNewRootComponent(nextElement, container, shouldReuseMarkup, context) {
	    if (process.env.NODE_ENV !== 'production') {
	      ReactInstrumentation.debugTool.onBeginFlush();
	    }

	    // Various parts of our code (such as ReactCompositeComponent's
	    // _renderValidatedComponent) assume that calls to render aren't nested;
	    // verify that that's the case.
	    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;

	    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : void 0;

	    ReactBrowserEventEmitter.ensureScrollValueMonitoring();
	    var componentInstance = instantiateReactComponent(nextElement);

	    if (process.env.NODE_ENV !== 'production') {
	      // Mute future events from the top level wrapper.
	      // It is an implementation detail that devtools should not know about.
	      componentInstance._debugID = 0;
	    }

	    // The initial render is synchronous but any updates that happen during
	    // rendering, in componentWillMount or componentDidMount, will be batched
	    // according to the current batching strategy.

	    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);

	    var wrapperID = componentInstance._instance.rootID;
	    instancesByReactRootID[wrapperID] = componentInstance;

	    if (process.env.NODE_ENV !== 'production') {
	      // The instance here is TopLevelWrapper so we report mount for its child.
	      ReactInstrumentation.debugTool.onMountRootComponent(componentInstance._renderedComponent._debugID);
	      ReactInstrumentation.debugTool.onEndFlush();
	    }

	    return componentInstance;
	  }
/**
	   * Render a new component into the DOM. Hooked by devtools!
	   *
	   * @param {ReactElement} nextElement element to render
	   * @param {DOMElement} container container to render into
	   * @param {boolean} shouldReuseMarkup if we should skip the markup insertion
	   * @return {ReactComponent} nextComponent
	   */
Render a new component into the DOM. Hooked by devtools.
@param {ReactElement} nextElement element to render
@param {DOMElement} container container to render into
@param {boolean} shouldReuseMarkup if we should skip the markup insertion
@return {ReactComponent} nextComponent
Render a new component into the DOM . Hooked by devtools . @param { ReactElement } nextElement element to render @param { DOMElement } container container to render into @param { boolean } shouldReuseMarkup if we should skip the markup insertion @return { ReactComponent } nextComponent
function _renderNewRootComponent(nextElement, container, shouldReuseMarkup, context) {
	    if (process.env.NODE_ENV !== 'production') {
	      ReactInstrumentation.debugTool.onBeginFlush();
	    }
	    process.env.NODE_ENV !== 'production' ? warning(ReactCurrentOwner.current == null, '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.', ReactCurrentOwner.current && ReactCurrentOwner.current.getName() || 'ReactCompositeComponent') : void 0;
	    !(container && (container.nodeType === ELEMENT_NODE_TYPE || container.nodeType === DOC_NODE_TYPE || container.nodeType === DOCUMENT_FRAGMENT_NODE_TYPE)) ? process.env.NODE_ENV !== 'production' ? invariant(false, '_registerComponent(...): Target container is not a DOM element.') : invariant(false) : void 0;
	    ReactBrowserEventEmitter.ensureScrollValueMonitoring();
	    var componentInstance = instantiateReactComponent(nextElement);
	    if (process.env.NODE_ENV !== 'production') {
	      componentInstance._debugID = 0;
	    }
	    ReactUpdates.batchedUpdates(batchedMountComponentIntoNode, componentInstance, container, shouldReuseMarkup, context);
	    var wrapperID = componentInstance._instance.rootID;
	    instancesByReactRootID[wrapperID] = componentInstance;
	    if (process.env.NODE_ENV !== 'production') {
	      ReactInstrumentation.debugTool.onMountRootComponent(componentInstance._renderedComponent._debugID);
	      ReactInstrumentation.debugTool.onEndFlush();
	    }
	    return componentInstance;
	  }
function _renderNewRootComponent ( nextElement , container , shouldReuseMarkup , context ) { if ( process . env . NODE_ENV !== 'production' ) { ReactInstrumentation . debugTool . onBeginFlush ( ) ; } process . env . NODE_ENV !== 'production' ? warning ( ReactCurrentOwner . current == null , '_renderNewRootComponent(): Render methods should be a pure function ' + 'of props and state; triggering nested component updates from ' + 'render is not allowed. If necessary, trigger nested updates in ' + 'componentDidUpdate. Check the render method of %s.' , ReactCurrentOwner . current && ReactCurrentOwner . current . getName ( ) || 'ReactCompositeComponent' ) : void 0 ; ! ( container && ( container . nodeType === ELEMENT_NODE_TYPE || container . nodeType === DOC_NODE_TYPE || container . nodeType === DOCUMENT_FRAGMENT_NODE_TYPE ) ) ? process . env . NODE_ENV !== 'production' ? invariant ( false , '_registerComponent(...): Target container is not a DOM element.' ) : invariant ( false ) : void 0 ; ReactBrowserEventEmitter . ensureScrollValueMonitoring ( ) ; var componentInstance = instantiateReactComponent ( nextElement ) ; if ( process . env . NODE_ENV !== 'production' ) { componentInstance . _debugID = 0 ; } ReactUpdates . batchedUpdates ( batchedMountComponentIntoNode , componentInstance , container , shouldReuseMarkup , context ) ; var wrapperID = componentInstance . _instance . rootID ; instancesByReactRootID [ wrapperID ] = componentInstance ; if ( process . env . NODE_ENV !== 'production' ) { ReactInstrumentation . debugTool . onMountRootComponent ( componentInstance . _renderedComponent . _debugID ) ; ReactInstrumentation . debugTool . onEndFlush ( ) ; } return componentInstance ; }
Render a new component into the DOM.
Render a new component into the DOM .
// Various parts of our code (such as ReactCompositeComponent's // _renderValidatedComponent) assume that calls to render aren't nested; // verify that that's the case. // Mute future events from the top level wrapper. // It is an implementation detail that devtools should not know about. // The initial render is synchronous but any updates that happen during // rendering, in componentWillMount or componentDidMount, will be batched // according to the current batching strategy. // The instance here is TopLevelWrapper so we report mount for its child.