mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-26 14:05:04 +08:00
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
|
|
var $ = require('../internals/export');
|
||
|
|
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 MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
|
||
|
|
var Function = global.Function;
|
||
|
|
|
||
|
|
var wrap = function (scheduler) {
|
||
|
|
return function (handler, timeout /* , ...arguments */) {
|
||
|
|
var boundArgs = arguments.length > 2;
|
||
|
|
var args = boundArgs ? arraySlice(arguments, 2) : undefined;
|
||
|
|
return scheduler(boundArgs ? function () {
|
||
|
|
apply(isCallable(handler) ? handler : Function(handler), this, args);
|
||
|
|
} : handler, timeout);
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
// ie9- setTimeout & setInterval additional parameters fix
|
||
|
|
// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#timers
|
||
|
|
$({ global: true, bind: true, forced: MSIE }, {
|
||
|
|
// `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)
|
||
|
|
});
|