rem: event.target = event.target.parentNode; 
add: event.target = originalEvent.target.parentNode;   event.preventDefault = function() { return originalEvent.preventDefault(); }; event.stopPropagation = function() { return originalEvent.stopPropagation(); }; 
context: 	fix: function(event) {		// Fix target property, if necessary		if ( !event.target && event.srcElement )			event.target = event.srcElement;		// Calculate pageX/Y if missing and clientX/Y available		if ( typeof event.pageX == "undefined" && typeof event.clientX != "undefined" ) {			var e = document.documentElement, b = document.body;			event.pageX = event.clientX + (e.scrollLeft || b.scrollLeft);			event.pageY = event.clientY + (e.scrollTop || b.scrollTop);		}						// Check safari and if target is a textnode		if ( jQuery.browser.safari && event.target.nodeType == 3 ) {			// target is readonly, clone the event object			event = jQuery.extend({}, event);			// get parentnode from textnode			event.target = event.target.parentNode;		}				// fix preventDefault and stopPropagation		if (!event.preventDefault) {			event.preventDefault = function() {				this.returnValue = false;			};		}					if (!event.stopPropagation) {			event.stopPropagation = function() {				this.cancelBubble = true;			};		}					return event;	}
meta: 1471	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/1471/b06dd433b2d77e902c3f643cf791d2a10f63cea6/event.js/buggy/src/event/event.js