rem:   if ( event.metaKey == null && event.ctrlKey != null ) event.metaKey = event.ctrlKey;    if ( event.which == null && event.button != null ) event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); 
context: 	fix: function(event) {		// Fix target property, if necessary		if ( !event.target && event.srcElement )			event.target = event.srcElement;		// Add relatedTarget, if necessary		if ( !event.relatedTarget && event.fromElement )			event.relatedTarget = event.fromElement == event.target ? event.toElement : event.fromElement;		// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)		if ( event.metaKey == null && event.ctrlKey != null )			event.metaKey = event.ctrlKey;		// Add which for click: 1 == left; 2 == middle; 3 == right		// Note: button is not normalized, so don't use it		if ( event.which == null && event.button != null )			event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));		// Calculate pageX/Y if missing and clientX/Y available		if ( event.pageX == null && event.clientX != null ) {			var e = document.documentElement || document.body;			event.pageX = event.clientX + e.scrollLeft;			event.pageY = event.clientY + e.scrollTop;		}		// Add which for keypresses: keyCode		if ( (event.which == null || event.type == "keypress") && event.keyCode != null )			event.which = event.keyCode;    		// If it's a keypress event, add charCode to IE		if ( event.charCode == null && event.type == "keypress" )			event.charCode = event.keyCode;						// check if target is a textnode (safari)		if (jQuery.browser.safari && event.target.nodeType == 3) {			// store a copy of the original event object 			// and clone because target is read only			var originalEvent = event;			event = jQuery.extend({}, originalEvent);						// get parentnode from textnode			event.target = originalEvent.target.parentNode;						// add preventDefault and stopPropagation since 			// they will not work on the clone			event.preventDefault = function() {				return originalEvent.preventDefault();			};			event.stopPropagation = function() {				return originalEvent.stopPropagation();			};		}				// 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: 2798	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/2798/ee31297a83f3add9f1832e863da3b6100ab9e7d3/event.js/buggy/src/event/event.js