code: function (transaction, prevElement, nextElement, context) {
  	    var _this2 = this;
  
  	    var lastProps = prevElement.props;
  	    var nextProps = this._currentElement.props;
  
  	    switch (this._tag) {
  	      case 'button':
  	        lastProps = ReactDOMButton.getHostProps(this, lastProps);
  	        nextProps = ReactDOMButton.getHostProps(this, nextProps);
  	        break;
  	      case 'input':
  	        ReactDOMInput.updateWrapper(this);
  	        lastProps = ReactDOMInput.getHostProps(this, lastProps);
  	        nextProps = ReactDOMInput.getHostProps(this, nextProps);
  	        break;
  	      case 'option':
  	        lastProps = ReactDOMOption.getHostProps(this, lastProps);
  	        nextProps = ReactDOMOption.getHostProps(this, nextProps);
  	        break;
  	      case 'select':
  	        lastProps = ReactDOMSelect.getHostProps(this, lastProps);
  	        nextProps = ReactDOMSelect.getHostProps(this, nextProps);
  	        break;
  	      case 'textarea':
  	        ReactDOMTextarea.updateWrapper(this);
  	        lastProps = ReactDOMTextarea.getHostProps(this, lastProps);
  	        nextProps = ReactDOMTextarea.getHostProps(this, nextProps);
  	        break;
  	    }
  
  	    assertValidProps(this, nextProps);
  	    this._updateDOMProperties(lastProps, nextProps, transaction);
  	    this._updateDOMChildren(lastProps, nextProps, transaction, context);
  
  	    if (this._tag === 'select') {
  	      // <select> value update needs to occur after <option> children
  	      // reconciliation
  	      transaction.getReactMountReady().enqueue(postUpdateSelectWrapper, this);
  	    }
  
  	    if (process.env.NODE_ENV !== 'production') {
  	      if (this._debugID) {
  	        var callback = function () {
  	          return ReactInstrumentation.debugTool.onComponentHasUpdated(_this2._debugID);
  	        };
  	        transaction.getReactMountReady().enqueue(callback, this);
  	      }
  	    }
  	  }
docs: Updates a DOM component after it has already been allocated and
  attached to the DOM. Reconciles the root DOM node, then recurses.
  
  @param {ReactReconcileTransaction} transaction
  @param {ReactElement} prevElement
  @param {ReactElement} nextElement
  @internal
  @overridable