mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-06-26 10:05:47 +02:00
Merge pull request #20709 from Snuffleupagus/scripting-unconditional-FinalizationRegistry
Use `FinalizationRegistry` unconditionally in the `src/scripting_api/app.js` file
This commit is contained in:
commit
cc516d0dd4
@ -52,18 +52,14 @@ class App extends PDFObject {
|
|||||||
);
|
);
|
||||||
|
|
||||||
this._timeoutIds = new WeakMap();
|
this._timeoutIds = new WeakMap();
|
||||||
if (typeof FinalizationRegistry !== "undefined") {
|
// About setTimeOut/setInterval return values (specs):
|
||||||
// About setTimeOut/setInterval return values (specs):
|
// The return value of this method must be held in a
|
||||||
// The return value of this method must be held in a
|
// JavaScript variable.
|
||||||
// JavaScript variable.
|
// Otherwise, the timeout object is subject to garbage-collection,
|
||||||
// Otherwise, the timeout object is subject to garbage-collection,
|
// which would cause the clock to stop.
|
||||||
// which would cause the clock to stop.
|
this._timeoutIdsRegistry = new FinalizationRegistry(
|
||||||
this._timeoutIdsRegistry = new FinalizationRegistry(
|
this._cleanTimeout.bind(this)
|
||||||
this._cleanTimeout.bind(this)
|
);
|
||||||
);
|
|
||||||
} else {
|
|
||||||
this._timeoutIdsRegistry = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
this._timeoutCallbackIds = new Map();
|
this._timeoutCallbackIds = new Map();
|
||||||
this._timeoutCallbackId = USERACTIVATION_CALLBACKID + 1;
|
this._timeoutCallbackId = USERACTIVATION_CALLBACKID + 1;
|
||||||
@ -113,12 +109,12 @@ class App extends PDFObject {
|
|||||||
const timeout = Object.create(null);
|
const timeout = Object.create(null);
|
||||||
const id = { callbackId, interval };
|
const id = { callbackId, interval };
|
||||||
this._timeoutIds.set(timeout, id);
|
this._timeoutIds.set(timeout, id);
|
||||||
this._timeoutIdsRegistry?.register(timeout, id);
|
this._timeoutIdsRegistry.register(timeout, id);
|
||||||
return timeout;
|
return timeout;
|
||||||
}
|
}
|
||||||
|
|
||||||
_unregisterTimeout(timeout) {
|
_unregisterTimeout(timeout) {
|
||||||
this._timeoutIdsRegistry?.unregister(timeout);
|
this._timeoutIdsRegistry.unregister(timeout);
|
||||||
|
|
||||||
const data = this._timeoutIds.get(timeout);
|
const data = this._timeoutIds.get(timeout);
|
||||||
if (!data) {
|
if (!data) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user