docs: function emit(type) {
      var listeners,
          me = this,
          event = Event(type),
          events = me.events,
          args = (arguments[0] = event, arguments);
  
      event.currentTarget || (event.currentTarget = me);
      event.target || (event.target = me);
      delete event.result;
  
      if (events && (listeners = hasKey(events, event.type) && events[event.type])) {
        forEach(listeners.slice(), function(listener) {
          if ((event.result = listener.apply(me, args)) === false) {
            event.cancelled = true;
          }
          return !event.aborted;
        });
      }
      return event.result;
    }