| 12345678910111213141516171819202122232425262728293031 | var global = require('../internals/global');var apply = require('../internals/function-apply');var isCallable = require('../internals/is-callable');var userAgent = require('../internals/engine-user-agent');var arraySlice = require('../internals/array-slice');var validateArgumentsLength = require('../internals/validate-arguments-length');var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- checkvar Function = global.Function;var wrap = function (scheduler) {  return MSIE ? function (handler, timeout /* , ...arguments */) {    var boundArgs = validateArgumentsLength(arguments.length, 1) > 2;    var fn = isCallable(handler) ? handler : Function(handler);    var args = boundArgs ? arraySlice(arguments, 2) : undefined;    return scheduler(boundArgs ? function () {      apply(fn, this, args);    } : fn, timeout);  } : scheduler;};// ie9- setTimeout & setInterval additional parameters fix// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timersmodule.exports = {  // `setTimeout` method  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-settimeout  setTimeout: wrap(global.setTimeout),  // `setInterval` method  // https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval  setInterval: wrap(global.setInterval)};
 |