| // ie9- setTimeout & setInterval additional parameters fix |
| var global = require('./_global'); |
| var $export = require('./_export'); |
| var userAgent = require('./_user-agent'); |
| var slice = [].slice; |
| var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check |
| var wrap = function (set) { |
| return function (fn, time /* , ...args */) { |
| var boundArgs = arguments.length > 2; |
| var args = boundArgs ? slice.call(arguments, 2) : false; |
| return set(boundArgs ? function () { |
| // eslint-disable-next-line no-new-func |
| (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); |
| } : fn, time); |
| }; |
| }; |
| $export($export.G + $export.B + $export.F * MSIE, { |
| setTimeout: wrap(global.setTimeout), |
| setInterval: wrap(global.setInterval) |
| }); |