docs: function (eventType, event, target) {
  
                  if (!(event instanceof EventDispatcher.Event)) {
                      event = new EventDispatcher.Event(event);
                  }
  
                  if (!event.target) {
                      event.target = target || this;
                  }
  
                  event.type = eventType;
  
  
                  if (!(this._eventHandlers[eventType] || this._eventHandlers["*"])) {
                      return event;
                  }
  
                  var list,
                      result, i;
  
                  if (this._eventHandlers[eventType]) {
  
                      list = this._eventHandlers[eventType].slice();
                      for (i = 0; i < list.length; i++) {
                          if (list[i]) {
                              result = list[i].trigger(event, event.target);
                              if (result !== undefinedValue) {
  
                                  if (result === false) {
                                      event.preventDefault();
                                      event.stopPropagation();
                                  }
                              }
  
                              if (event.isImmediatePropagationStopped) {
                                  break;
                              }
                          }
                      }
                  }
  
                  if (this._eventHandlers["*"]) {
  
                      list = this._eventHandlers["*"].slice();
                      for (i = 0; i < list.length; i++) {
                          if (list[i]) {
                              result = list[i].trigger(event, target);
                              if (result !== undefinedValue) {
  
                                  if (result === false) {
                                      event.preventDefault();
                                      event.stopPropagation();
                                  }
                              }
  
                              if (event.isImmediatePropagationStopped) {
                                  break;
                              }
                          }
                      }
                  }
  
                  return event;
              }