docs: function dispatch(action) {
  	    if (!(0, _isPlainObject2['default'])(action)) {
  	      throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');
  	    }
  	
  	    if (typeof action.type === 'undefined') {
  	      throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?');
  	    }
  	
  	    if (isDispatching) {
  	      throw new Error('Reducers may not dispatch actions.');
  	    }
  	
  	    try {
  	      isDispatching = true;
  	      currentState = currentReducer(currentState, action);
  	    } finally {
  	      isDispatching = false;
  	    }
  	
  	    var listeners = currentListeners = nextListeners;
  	    for (var i = 0; i < listeners.length; i++) {
  	      listeners[i]();
  	    }
  	
  	    return action;
  	  }