code: function invoke(vContext, vArguments, bAsync, bFinal) {
  				iLastInvocationTime = bFinal === true ? null : Date.now();
  
  				if (vArguments == null) {
  					return;
  				}
  
  				if (bAsync === true) {
  					var oPromise = Promise.resolve().then(function() {
  						if (!oPromise.canceled) {
  							fn.apply(vContext, vArguments);
  						}
  						oCancelablePromise = null;
  					});
  					oPromise.cancel = function() {
  						oPromise.canceled = true;
  					};
  					oCancelablePromise = oPromise;
  				} else {
  					fn.apply(vContext, vArguments);
  				}
  			}
docs: Calls the method. Only calls the method if an arguments object is provided.
  
  @param {any} [vContext] The context of the call.
  @param {Object} [vArguments] The arguments object.
  @param {boolean} [bAsync=false] Whether the method should be called in a promise.
  @param {boolean} [bFinal=false] Whether this is the final invocation before cancellation.