code: function fakeEvent(sEventName, oTarget, oParams) {
  
  		var oEvent = jQuery.Event({type : sEventName});
  		if ( oTarget != null ) {
  			oEvent.target = oTarget;
  		}
  
  		if (oParams) {
  			for (var x in oParams) {
  
  				// propagate property to event
  				oEvent[x] = oParams[x];
  
  				if ( x === 'originalEvent' ) {
  					// if 'originalEvent' has been changed, fix it
  					fixOriginalEvent(oEvent[x]);
  				} else {
  					// otherwise propagate property to 'originalEvent' as well
  					oEvent.originalEvent[x] = oParams[x];
  				}
  			}
  		}
  
  		return oEvent;
  	}
docs: /*
  Creates a fake event of type jQuery.Event, according to current UI5 practices; it will always
  contain a pseudo browser event (property <code>originalEvent</code>).
  
  Please note that the <code>originalEvent</code> could be created as a native browser event (class <code>Event</code>)
  as some existing test cases specify a <code>target</code> property which is readonly in the <code>Event</code> class.
  
  Any given <code>oParams</code> are added to the new <code>jQuery.Event</code> as well as to its <code>originalEvent</code>
  object. To be compatible with older versions, this function does not propagate properties to <code>originalEvent</code> when
  they are given before an eventual <code>originalEvent</code> property in <code>oParams</code>.
  
  @param {string} sEventName mandatory name (type) of the newly created event
  @param {DOMElement} [oTarget] optional target of the event
  @param {object} [oParams] optional map of properties to be added to the event