[src/display/api.js] Use private static class fields, rather than shadow
ed getter work-arounds (PR 13813, 13882 follow-up)
At the time private static class fields were to new, however that's no longer an issue and we can thus (ever so slightly) simplify the code.
This commit is contained in:
parent
90c5e9882b
commit
d5c9be341d
@ -533,9 +533,7 @@ async function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
|
|||||||
* after which individual pages can be rendered.
|
* after which individual pages can be rendered.
|
||||||
*/
|
*/
|
||||||
class PDFDocumentLoadingTask {
|
class PDFDocumentLoadingTask {
|
||||||
static get idCounters() {
|
static #docId = 0;
|
||||||
return shadow(this, "idCounters", { doc: 0 });
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
this._capability = createPromiseCapability();
|
this._capability = createPromiseCapability();
|
||||||
@ -546,7 +544,7 @@ class PDFDocumentLoadingTask {
|
|||||||
* Unique identifier for the document loading task.
|
* Unique identifier for the document loading task.
|
||||||
* @type {string}
|
* @type {string}
|
||||||
*/
|
*/
|
||||||
this.docId = `d${PDFDocumentLoadingTask.idCounters.doc++}`;
|
this.docId = `d${PDFDocumentLoadingTask.#docId++}`;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether the loading task is destroyed or not.
|
* Whether the loading task is destroyed or not.
|
||||||
@ -2017,16 +2015,14 @@ if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) {
|
|||||||
* @param {PDFWorkerParameters} params - The worker initialization parameters.
|
* @param {PDFWorkerParameters} params - The worker initialization parameters.
|
||||||
*/
|
*/
|
||||||
class PDFWorker {
|
class PDFWorker {
|
||||||
static get _workerPorts() {
|
static #workerPorts = new WeakMap();
|
||||||
return shadow(this, "_workerPorts", new WeakMap());
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor({
|
constructor({
|
||||||
name = null,
|
name = null,
|
||||||
port = null,
|
port = null,
|
||||||
verbosity = getVerbosityLevel(),
|
verbosity = getVerbosityLevel(),
|
||||||
} = {}) {
|
} = {}) {
|
||||||
if (port && PDFWorker._workerPorts.has(port)) {
|
if (port && PDFWorker.#workerPorts.has(port)) {
|
||||||
throw new Error("Cannot use more than one PDFWorker per port.");
|
throw new Error("Cannot use more than one PDFWorker per port.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2040,7 +2036,7 @@ class PDFWorker {
|
|||||||
this._messageHandler = null;
|
this._messageHandler = null;
|
||||||
|
|
||||||
if (port) {
|
if (port) {
|
||||||
PDFWorker._workerPorts.set(port, this);
|
PDFWorker.#workerPorts.set(port, this);
|
||||||
this._initializeFromPort(port);
|
this._initializeFromPort(port);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2245,7 +2241,7 @@ class PDFWorker {
|
|||||||
this._webWorker.terminate();
|
this._webWorker.terminate();
|
||||||
this._webWorker = null;
|
this._webWorker = null;
|
||||||
}
|
}
|
||||||
PDFWorker._workerPorts.delete(this._port);
|
PDFWorker.#workerPorts.delete(this._port);
|
||||||
this._port = null;
|
this._port = null;
|
||||||
if (this._messageHandler) {
|
if (this._messageHandler) {
|
||||||
this._messageHandler.destroy();
|
this._messageHandler.destroy();
|
||||||
@ -2260,8 +2256,8 @@ class PDFWorker {
|
|||||||
if (!params?.port) {
|
if (!params?.port) {
|
||||||
throw new Error("PDFWorker.fromPort - invalid method signature.");
|
throw new Error("PDFWorker.fromPort - invalid method signature.");
|
||||||
}
|
}
|
||||||
if (this._workerPorts.has(params.port)) {
|
if (this.#workerPorts.has(params.port)) {
|
||||||
return this._workerPorts.get(params.port);
|
return this.#workerPorts.get(params.port);
|
||||||
}
|
}
|
||||||
return new PDFWorker(params);
|
return new PDFWorker(params);
|
||||||
}
|
}
|
||||||
@ -3196,9 +3192,7 @@ class RenderTask {
|
|||||||
* @ignore
|
* @ignore
|
||||||
*/
|
*/
|
||||||
class InternalRenderTask {
|
class InternalRenderTask {
|
||||||
static get canvasInUse() {
|
static #canvasInUse = new WeakSet();
|
||||||
return shadow(this, "canvasInUse", new WeakSet());
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor({
|
constructor({
|
||||||
callback,
|
callback,
|
||||||
@ -3251,14 +3245,14 @@ class InternalRenderTask {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (this._canvas) {
|
if (this._canvas) {
|
||||||
if (InternalRenderTask.canvasInUse.has(this._canvas)) {
|
if (InternalRenderTask.#canvasInUse.has(this._canvas)) {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
"Cannot use the same canvas during multiple render() operations. " +
|
"Cannot use the same canvas during multiple render() operations. " +
|
||||||
"Use different canvas or ensure previous operations were " +
|
"Use different canvas or ensure previous operations were " +
|
||||||
"cancelled or completed."
|
"cancelled or completed."
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
InternalRenderTask.canvasInUse.add(this._canvas);
|
InternalRenderTask.#canvasInUse.add(this._canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this._pdfBug && globalThis.StepperManager?.enabled) {
|
if (this._pdfBug && globalThis.StepperManager?.enabled) {
|
||||||
@ -3298,7 +3292,7 @@ class InternalRenderTask {
|
|||||||
this.gfx.endDrawing();
|
this.gfx.endDrawing();
|
||||||
}
|
}
|
||||||
if (this._canvas) {
|
if (this._canvas) {
|
||||||
InternalRenderTask.canvasInUse.delete(this._canvas);
|
InternalRenderTask.#canvasInUse.delete(this._canvas);
|
||||||
}
|
}
|
||||||
this.callback(
|
this.callback(
|
||||||
error ||
|
error ||
|
||||||
@ -3364,7 +3358,7 @@ class InternalRenderTask {
|
|||||||
if (this.operatorList.lastChunk) {
|
if (this.operatorList.lastChunk) {
|
||||||
this.gfx.endDrawing();
|
this.gfx.endDrawing();
|
||||||
if (this._canvas) {
|
if (this._canvas) {
|
||||||
InternalRenderTask.canvasInUse.delete(this._canvas);
|
InternalRenderTask.#canvasInUse.delete(this._canvas);
|
||||||
}
|
}
|
||||||
this.callback();
|
this.callback();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user