All checks were successful
Plugin Library CI / publish (00.BuildOriginality) (push) Successful in 13s
Plugin Library CI / publish (00.StaryEvo) (push) Successful in 17s
Plugin Library CI / publish (00.StaryEvoTools) (push) Successful in 35s
Plugin Library CI / publish (01.HybridCLR) (push) Successful in 15s
Plugin Library CI / publish (02.InformationSave) (push) Successful in 3s
Plugin Library CI / publish (03.YooAsset) (push) Successful in 33s
Plugin Library CI / publish (04.AudioCore) (push) Successful in 3s
Plugin Library CI / publish (05.TableTextConversion) (push) Successful in 5s
Plugin Library CI / publish (06.UIFarme) (push) Successful in 15s
Plugin Library CI / publish (07.RKTools) (push) Successful in 2s
Plugin Library CI / publish (08.UniTask) (push) Successful in 3s
Plugin Library CI / publish (09.CodeChecker) (push) Successful in 16s
Plugin Library CI / publish (10.StoryEditor) (push) Successful in 3s
Plugin Library CI / publish (10.XNode) (push) Successful in 3s
Plugin Library CI / publish (11.PointCloudTools) (push) Successful in 2s
Plugin Library CI / publish (12.WeixinMinigame) (push) Successful in 2m32s
90 lines
2.7 KiB
JavaScript
90 lines
2.7 KiB
JavaScript
/* eslint-disable prefer-spread */
|
|
/* eslint-disable prefer-rest-params */
|
|
|
|
export default {
|
|
init() {
|
|
this.fixTimer();
|
|
},
|
|
|
|
fixTimer() {
|
|
const wm = {};
|
|
const privateSetTimeout = window.setTimeout;
|
|
let id = 0;
|
|
const getId = function () {
|
|
id += 1;
|
|
if (id > 100000000) {
|
|
id = 0;
|
|
}
|
|
return id;
|
|
};
|
|
// @ts-ignore
|
|
window.setTimeout = function (vCallback, nDelay) {
|
|
const aArgs = Array.prototype.slice.call(arguments, 2);
|
|
const id = getId();
|
|
const t = privateSetTimeout(vCallback instanceof Function
|
|
? () => {
|
|
// @ts-ignore
|
|
vCallback.apply(null, aArgs);
|
|
delete wm[id];
|
|
}
|
|
: vCallback, nDelay);
|
|
wm[id] = t;
|
|
return id;
|
|
};
|
|
const privateClearTimeout = window.clearTimeout;
|
|
// @ts-ignore
|
|
window.clearTimeout = function (id) {
|
|
if (id) {
|
|
const t = wm[id];
|
|
if (t) {
|
|
privateClearTimeout(t);
|
|
delete wm[id];
|
|
}
|
|
}
|
|
};
|
|
const privateSetInterval = window.setInterval;
|
|
// @ts-ignore
|
|
window.setInterval = function (vCallback, nDelay) {
|
|
const aArgs = Array.prototype.slice.call(arguments, 2);
|
|
const id = getId();
|
|
const t = privateSetInterval(vCallback instanceof Function
|
|
? () => {
|
|
// @ts-ignore
|
|
vCallback.apply(null, aArgs);
|
|
}
|
|
: vCallback, nDelay);
|
|
wm[id] = t;
|
|
return id;
|
|
};
|
|
const privateClearInterval = window.clearInterval;
|
|
// @ts-ignore
|
|
window.clearInterval = function (id) {
|
|
if (id) {
|
|
const t = wm[id];
|
|
if (t) {
|
|
privateClearInterval(t);
|
|
delete wm[id];
|
|
}
|
|
}
|
|
};
|
|
const privateRequestAnimationFrame = window.requestAnimationFrame;
|
|
window.requestAnimationFrame = function (vCallback) {
|
|
const id = getId();
|
|
const t = privateRequestAnimationFrame(() => {
|
|
vCallback(0);
|
|
delete wm[id];
|
|
});
|
|
wm[id] = t;
|
|
return id;
|
|
};
|
|
const privateCancelAnimationFrame = window.cancelAnimationFrame;
|
|
window.cancelAnimationFrame = function (id) {
|
|
const t = wm[id];
|
|
if (t) {
|
|
privateCancelAnimationFrame(t);
|
|
delete wm[id];
|
|
}
|
|
};
|
|
},
|
|
};
|