code: function accumulateDirectionalDispatches(inst, phase, event) {
    {
      warning(inst, 'Dispatching inst must not be null');
    }
    var listener = listenerAtPhase(inst, event, phase);
    if (listener) {
      event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
      event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
    }
  }
docs: A small set of propagation patterns, each of which will accept a small amount
  of information, and generate a set of "dispatch ready event objects" - which
  are sets of events that have already been annotated with a set of dispatched
  listener functions/ids. The API is designed this way to discourage these
  propagation strategies from actually executing the dispatches, since we
  always want to collect the entire set of dispatches before executing even a
  single one.
   
  Tags a `SyntheticEvent` with dispatched listeners. Creating this function
  here, allows us to not have to bind or create functions for each event.
  Mutating the event's members allows us to not have to create a wrapping
  "dispatch" object that pairs the event with the listener.