function fire(event, target, listener) {
		var returned, oldData;

		if (listener.d !== null) {
			oldData = event.data;
			event.data = listener.d;
			returned = listener.h.call(target, event, target);
			event.data = oldData;
		} else {
			returned = listener.h.call(target, event, target);
		}

		return returned;
	}
function fire(event, target, listener) {
		var returned, oldData;

		if (listener.d !== null) {
			oldData = event.data;
			event.data = listener.d;
			returned = listener.h.call(target, event, target);
			event.data = oldData;
		} else {
			returned = listener.h.call(target, event, target);
		}

		return returned;
	}
function fire ( event , target , listener ) { var returned , oldData ; if ( listener . d !== null ) { oldData = event . data ; event . data = listener . d ; returned = listener . h . call ( target , event , target ) ; event . data = oldData ; } else { returned = listener . h . call ( target , event , target ) ; } return returned ; }
Fire a listener on a target

@private
@param {Event} event
@param {Node} target
@param {Object} listener
Fire a listener on a target