function wrapTimerHandler(vHandler) {
				var fnWrappedHandler = function() {
					var aArgs, fnHandler;
					if (bPromisesQueued) {
						aArgs = [fnWrappedHandler, 0].concat(arguments);
						_timeout.apply(window, aArgs);
					} else {
						fnHandler = typeof vHandler !== "function" ? new Function(vHandler) : vHandler; // eslint-disable-line no-new-func
						fnHandler.apply(window, arguments);
					}
				};
				return fnWrappedHandler;
			}
function wrapTimerHandler(vHandler) {
				var fnWrappedHandler = function() {
					var aArgs, fnHandler;
					if (bPromisesQueued) {
						aArgs = [fnWrappedHandler, 0].concat(arguments);
						_timeout.apply(window, aArgs);
					} else {
						fnHandler = typeof vHandler !== "function" ? new Function(vHandler) : vHandler; // eslint-disable-line no-new-func
						fnHandler.apply(window, arguments);
					}
				};
				return fnWrappedHandler;
			}
function wrapTimerHandler ( vHandler ) { var fnWrappedHandler = function ( ) { var aArgs , fnHandler ; if ( bPromisesQueued ) { aArgs = [ fnWrappedHandler , 0 ] . concat ( arguments ) ; _timeout . apply ( window , aArgs ) ; } else { fnHandler = typeof vHandler !== "function" ? new Function ( vHandler ) : vHandler ; // eslint-disable-line no-new-func fnHandler . apply ( window , arguments ) ; } } ; return fnWrappedHandler ; }
If there are promise handlers waiting for execution at the time the timeout fires, start another timeout to postpone timer execution after promise execution.
If there are promise handlers waiting for execution at the time the timeout fires start another timeout to postpone timer execution after promise execution .
wrap timer handler