code: function(type, evt) {
  			var state = this._eventTypes ? this._eventTypes[type] : null;
  			if (state) {
  				var listeners = state.listeners;
  				try {
  					state.level++;
  					if (listeners) {
  						for (var i=0, len=listeners.length; i < len; i++) {
  							if (listeners[i]) {
  								var l = listeners[i].listener;
  								if (typeof l === "function") {
  									l.call(this, evt);
  								} else if (l.handleEvent && typeof l.handleEvent === "function") {
  									l.handleEvent(evt);
  								}
  							}
  						}
  					}
  				} finally {
  					state.level--;
  					if (state.compact && state.level === 0) {
  						for (var j=listeners.length - 1; j >= 0; j--) {
  							if (!listeners[j]) {
  								listeners.splice(j, 1);
  							}
  						}
  						if (listeners.length === 0) {
  							delete this._eventTypes[type];
  						}
  						state.compact = false;
  					}
  				}
  			}
  		}
docs: Dispatches the given event to the listeners added to this event target.
  @private
  @param {String} type The name of the event type to send
  @param {Event} evt The event to dispatch.