code: function forceUpdate(callback) {
  		var $updater = this.$updater;
  		var $cache = this.$cache;
  		var props = this.props;
  		var state = this.state;
  		var context = this.context;
  
  		if (!$cache.isMounted) {
  			return;
  		}
  		// if updater is pending, add state to trigger nexttick update
  		if ($updater.isPending) {
  			$updater.addState(state);
  			return;
  		}
  		var nextProps = $cache.props || props;
  		var nextState = $cache.state || state;
  		var nextContext = $cache.context || context;
  		var parentContext = $cache.parentContext;
  		var node = $cache.node;
  		var vnode = $cache.vnode;
  		$cache.props = $cache.state = $cache.context = null;
  		$updater.isPending = true;
  		if (this.componentWillUpdate) {
  			this.componentWillUpdate(nextProps, nextState, nextContext);
  		}
  		this.state = nextState;
  		this.props = nextProps;
  		this.context = nextContext;
  		var newVnode = renderComponent(this);
  		var newNode = compareTwoVnodes(vnode, newVnode, node, getChildContext(this, parentContext));
  		if (newNode !== node) {
  			newNode.cache = newNode.cache || {};
  			syncCache(newNode.cache, node.cache, newNode);
  		}
  		$cache.vnode = newVnode;
  		$cache.node = newNode;
  		clearPending();
  		if (this.componentDidUpdate) {
  			this.componentDidUpdate(props, state, context);
  		}
  		if (callback) {
  			callback.call(this);
  		}
  		$updater.isPending = false;
  		$updater.emitUpdate();
  	}
docs: getChildContext: _.noop, componentWillUpdate: _.noop, componentDidUpdate: _.noop, componentWillReceiveProps: _.noop, componentWillMount: _.noop, componentDidMount: _.noop, componentWillUnmount: _.noop, shouldComponentUpdate(nextProps, nextState) { return true },