function unmountComponent(safely) {
	    switch (this._tag) {
	      case 'iframe':
	      case 'object':
	      case 'img':
	      case 'form':
	      case 'video':
	      case 'audio':
	        var listeners = this._wrapperState.listeners;
	        if (listeners) {
	          for (var i = 0; i < listeners.length; i++) {
	            listeners[i].remove();
	          }
	        }
	        break;
	      case 'html':
	      case 'head':
	      case 'body':
	        /**
	         * Components like <html> <head> and <body> can't be removed or added
	         * easily in a cross-browser way, however it's valuable to be able to
	         * take advantage of React's reconciliation for styling and <title>
	         * management. So we just document it and throw in dangerous cases.
	         */
	         true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : void 0;
	        break;
	    }

	    this.unmountChildren(safely);
	    ReactDOMComponentTree.uncacheNode(this);
	    EventPluginHub.deleteAllListeners(this);
	    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);
	    this._rootNodeID = null;
	    this._domID = null;
	    this._wrapperState = null;

	    if (process.env.NODE_ENV !== 'production') {
	      if (this._contentDebugID) {
	        ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);
	        this._contentDebugID = null;
	      }
	    }
	  }
/**
	   * Destroys all event registrations for this instance. Does not remove from
	   * the DOM. That must be done by the parent.
	   *
	   * @internal
	   */
Destroys all event registrations for this instance. Does not remove from
the DOM. That must be done by the parent.

@internal
Destroys all event registrations for this instance . Does not remove from the DOM . That must be done by the parent . @internal
function unmountComponent(safely) {
	    switch (this._tag) {
	      case 'iframe':
	      case 'object':
	      case 'img':
	      case 'form':
	      case 'video':
	      case 'audio':
	        var listeners = this._wrapperState.listeners;
	        if (listeners) {
	          for (var i = 0; i < listeners.length; i++) {
	            listeners[i].remove();
	          }
	        }
	        break;
	      case 'html':
	      case 'head':
	      case 'body':
	         true ? process.env.NODE_ENV !== 'production' ? invariant(false, '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.', this._tag) : invariant(false) : void 0;
	        break;
	    }
	    this.unmountChildren(safely);
	    ReactDOMComponentTree.uncacheNode(this);
	    EventPluginHub.deleteAllListeners(this);
	    ReactComponentBrowserEnvironment.unmountIDFromEnvironment(this._rootNodeID);
	    this._rootNodeID = null;
	    this._domID = null;
	    this._wrapperState = null;
	    if (process.env.NODE_ENV !== 'production') {
	      if (this._contentDebugID) {
	        ReactInstrumentation.debugTool.onUnmountComponent(this._contentDebugID);
	        this._contentDebugID = null;
	      }
	    }
	  }
function unmountComponent ( safely ) { switch ( this . _tag ) { case 'iframe' : case 'object' : case 'img' : case 'form' : case 'video' : case 'audio' : var listeners = this . _wrapperState . listeners ; if ( listeners ) { for ( var i = 0 ; i < listeners . length ; i ++ ) { listeners [ i ] . remove ( ) ; } } break ; case 'html' : case 'head' : case 'body' : true ? process . env . NODE_ENV !== 'production' ? invariant ( false , '<%s> tried to unmount. Because of cross-browser quirks it is ' + 'impossible to unmount some top-level components (eg <html>, ' + '<head>, and <body>) reliably and efficiently. To fix this, have a ' + 'single top-level component that never unmounts render these ' + 'elements.' , this . _tag ) : invariant ( false ) : void 0 ; break ; } this . unmountChildren ( safely ) ; ReactDOMComponentTree . uncacheNode ( this ) ; EventPluginHub . deleteAllListeners ( this ) ; ReactComponentBrowserEnvironment . unmountIDFromEnvironment ( this . _rootNodeID ) ; this . _rootNodeID = null ; this . _domID = null ; this . _wrapperState = null ; if ( process . env . NODE_ENV !== 'production' ) { if ( this . _contentDebugID ) { ReactInstrumentation . debugTool . onUnmountComponent ( this . _contentDebugID ) ; this . _contentDebugID = null ; } } }
Destroys all event registrations for this instance.
Destroys all event registrations for this instance .
/**
	         * Components like <html> <head> and <body> can't be removed or added
	         * easily in a cross-browser way, however it's valuable to be able to
	         * take advantage of React's reconciliation for styling and <title>
	         * management. So we just document it and throw in dangerous cases.
	         */