mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Use more optional chaining in the code-base
This patch updates a bunch of older code, that makes conditional function calls, to use optional chaining rather than `if`-blocks. These mostly mechanical changes reduce the size of the `gulp mozcentral` build by a little over 1 kB.
This commit is contained in:
parent
9578152ae4
commit
38ee28b1d3
15 changed files with 51 additions and 119 deletions
|
@ -380,9 +380,7 @@ class AnnotationElement {
|
|||
const commonActions = this._commonActions;
|
||||
for (const name of Object.keys(jsEvent.detail)) {
|
||||
const action = actions[name] || commonActions[name];
|
||||
if (action) {
|
||||
action(jsEvent);
|
||||
}
|
||||
action?.(jsEvent);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -752,9 +750,7 @@ class LinkAnnotationElement extends AnnotationElement {
|
|||
}
|
||||
|
||||
link.onclick = () => {
|
||||
if (otherClickAction) {
|
||||
otherClickAction();
|
||||
}
|
||||
otherClickAction?.();
|
||||
|
||||
const {
|
||||
fields: resetFormFields,
|
||||
|
|
|
@ -1354,9 +1354,7 @@ class PDFPageProxy {
|
|||
pageColors = null,
|
||||
printAnnotationStorage = null,
|
||||
}) {
|
||||
if (this._stats) {
|
||||
this._stats.time("Overall");
|
||||
}
|
||||
this._stats?.time("Overall");
|
||||
|
||||
const intentArgs = this._transport.getRenderingIntent(
|
||||
intent,
|
||||
|
@ -1401,9 +1399,7 @@ class PDFPageProxy {
|
|||
separateAnnots: null,
|
||||
};
|
||||
|
||||
if (this._stats) {
|
||||
this._stats.time("Page Request");
|
||||
}
|
||||
this._stats?.time("Page Request");
|
||||
this._pumpOperatorList(intentArgs);
|
||||
}
|
||||
|
||||
|
@ -1427,10 +1423,9 @@ class PDFPageProxy {
|
|||
} else {
|
||||
internalRenderTask.capability.resolve();
|
||||
}
|
||||
if (this._stats) {
|
||||
this._stats.timeEnd("Rendering");
|
||||
this._stats.timeEnd("Overall");
|
||||
}
|
||||
|
||||
this._stats?.timeEnd("Rendering");
|
||||
this._stats?.timeEnd("Overall");
|
||||
};
|
||||
|
||||
const internalRenderTask = new InternalRenderTask({
|
||||
|
@ -1465,9 +1460,8 @@ class PDFPageProxy {
|
|||
complete();
|
||||
return;
|
||||
}
|
||||
if (this._stats) {
|
||||
this._stats.time("Rendering");
|
||||
}
|
||||
this._stats?.time("Rendering");
|
||||
|
||||
internalRenderTask.initializeGraphics({
|
||||
transparency,
|
||||
optionalContentConfig,
|
||||
|
@ -1523,9 +1517,7 @@ class PDFPageProxy {
|
|||
separateAnnots: null,
|
||||
};
|
||||
|
||||
if (this._stats) {
|
||||
this._stats.time("Page Request");
|
||||
}
|
||||
this._stats?.time("Page Request");
|
||||
this._pumpOperatorList(intentArgs);
|
||||
}
|
||||
return intentState.opListReadCapability.promise;
|
||||
|
@ -1697,14 +1689,11 @@ class PDFPageProxy {
|
|||
if (!intentState) {
|
||||
return; // Rendering was cancelled.
|
||||
}
|
||||
if (this._stats) {
|
||||
this._stats.timeEnd("Page Request");
|
||||
}
|
||||
this._stats?.timeEnd("Page Request");
|
||||
|
||||
// TODO Refactor RenderPageRequest to separate rendering
|
||||
// and operator list logic
|
||||
if (intentState.displayReadyCapability) {
|
||||
intentState.displayReadyCapability.resolve(transparency);
|
||||
}
|
||||
intentState.displayReadyCapability?.resolve(transparency);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3259,17 +3248,14 @@ class InternalRenderTask {
|
|||
});
|
||||
this.operatorListIdx = 0;
|
||||
this.graphicsReady = true;
|
||||
if (this.graphicsReadyCallback) {
|
||||
this.graphicsReadyCallback();
|
||||
}
|
||||
this.graphicsReadyCallback?.();
|
||||
}
|
||||
|
||||
cancel(error = null) {
|
||||
this.running = false;
|
||||
this.cancelled = true;
|
||||
if (this.gfx) {
|
||||
this.gfx.endDrawing();
|
||||
}
|
||||
this.gfx?.endDrawing();
|
||||
|
||||
if (this._canvas) {
|
||||
InternalRenderTask.#canvasInUse.delete(this._canvas);
|
||||
}
|
||||
|
@ -3289,10 +3275,7 @@ class InternalRenderTask {
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.stepper) {
|
||||
this.stepper.updateOperatorList(this.operatorList);
|
||||
}
|
||||
this.stepper?.updateOperatorList(this.operatorList);
|
||||
|
||||
if (this.running) {
|
||||
return;
|
||||
|
|
|
@ -88,9 +88,8 @@ class PDFFetchStream {
|
|||
}
|
||||
|
||||
cancelAllRequests(reason) {
|
||||
if (this._fullRequestReader) {
|
||||
this._fullRequestReader.cancel(reason);
|
||||
}
|
||||
this._fullRequestReader?.cancel(reason);
|
||||
|
||||
for (const reader of this._rangeRequestReaders.slice(0)) {
|
||||
reader.cancel(reason);
|
||||
}
|
||||
|
@ -202,9 +201,7 @@ class PDFFetchStreamReader {
|
|||
}
|
||||
|
||||
cancel(reason) {
|
||||
if (this._reader) {
|
||||
this._reader.cancel(reason);
|
||||
}
|
||||
this._reader?.cancel(reason);
|
||||
this._abortController.abort();
|
||||
}
|
||||
}
|
||||
|
@ -256,17 +253,14 @@ class PDFFetchStreamRangeReader {
|
|||
return { value, done };
|
||||
}
|
||||
this._loaded += value.byteLength;
|
||||
if (this.onProgress) {
|
||||
this.onProgress({ loaded: this._loaded });
|
||||
}
|
||||
this.onProgress?.({ loaded: this._loaded });
|
||||
|
||||
const buffer = new Uint8Array(value).buffer;
|
||||
return { value: buffer, done: false };
|
||||
}
|
||||
|
||||
cancel(reason) {
|
||||
if (this._reader) {
|
||||
this._reader.cancel(reason);
|
||||
}
|
||||
this._reader?.cancel(reason);
|
||||
this._abortController.abort();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -402,9 +402,7 @@ class FontFaceObject {
|
|||
);
|
||||
}
|
||||
|
||||
if (this.fontRegistry) {
|
||||
this.fontRegistry.registerFont(this);
|
||||
}
|
||||
this.fontRegistry?.registerFont(this);
|
||||
return nativeFontFace;
|
||||
}
|
||||
|
||||
|
@ -426,9 +424,7 @@ class FontFaceObject {
|
|||
rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`;
|
||||
}
|
||||
|
||||
if (this.fontRegistry) {
|
||||
this.fontRegistry.registerFont(this, url);
|
||||
}
|
||||
this.fontRegistry?.registerFont(this, url);
|
||||
return rule;
|
||||
}
|
||||
|
||||
|
|
|
@ -95,9 +95,8 @@ class PDFNodeStream {
|
|||
}
|
||||
|
||||
cancelAllRequests(reason) {
|
||||
if (this._fullRequestReader) {
|
||||
this._fullRequestReader.cancel(reason);
|
||||
}
|
||||
this._fullRequestReader?.cancel(reason);
|
||||
|
||||
for (const reader of this._rangeRequestReaders.slice(0)) {
|
||||
reader.cancel(reason);
|
||||
}
|
||||
|
@ -252,9 +251,8 @@ class BaseRangeReader {
|
|||
return this.read();
|
||||
}
|
||||
this._loaded += chunk.length;
|
||||
if (this.onProgress) {
|
||||
this.onProgress({ loaded: this._loaded });
|
||||
}
|
||||
this.onProgress?.({ loaded: this._loaded });
|
||||
|
||||
// Ensure that `read()` method returns ArrayBuffer.
|
||||
const buffer = new Uint8Array(chunk).buffer;
|
||||
return { value: buffer, done: false };
|
||||
|
|
|
@ -1543,9 +1543,7 @@ if (
|
|||
}
|
||||
|
||||
eoFill() {
|
||||
if (this.current.element) {
|
||||
this.current.element.setAttributeNS(null, "fill-rule", "evenodd");
|
||||
}
|
||||
this.current.element?.setAttributeNS(null, "fill-rule", "evenodd");
|
||||
this.fill();
|
||||
}
|
||||
|
||||
|
@ -1557,9 +1555,7 @@ if (
|
|||
}
|
||||
|
||||
eoFillStroke() {
|
||||
if (this.current.element) {
|
||||
this.current.element.setAttributeNS(null, "fill-rule", "evenodd");
|
||||
}
|
||||
this.current.element?.setAttributeNS(null, "fill-rule", "evenodd");
|
||||
this.fillStroke();
|
||||
}
|
||||
|
||||
|
|
|
@ -105,9 +105,7 @@ class PDFDataTransportStream {
|
|||
}
|
||||
|
||||
_onProgressiveDone() {
|
||||
if (this._fullRequestReader) {
|
||||
this._fullRequestReader.progressiveDone();
|
||||
}
|
||||
this._fullRequestReader?.progressiveDone();
|
||||
this._progressiveDone = true;
|
||||
}
|
||||
|
||||
|
@ -144,9 +142,8 @@ class PDFDataTransportStream {
|
|||
}
|
||||
|
||||
cancelAllRequests(reason) {
|
||||
if (this._fullRequestReader) {
|
||||
this._fullRequestReader.cancel(reason);
|
||||
}
|
||||
this._fullRequestReader?.cancel(reason);
|
||||
|
||||
for (const reader of this._rangeReaders.slice(0)) {
|
||||
reader.cancel(reason);
|
||||
}
|
||||
|
|
|
@ -100,16 +100,12 @@ class App extends PDFObject {
|
|||
const timeout = Object.create(null);
|
||||
const id = { callbackId, interval };
|
||||
this._timeoutIds.set(timeout, id);
|
||||
if (this._timeoutIdsRegistry) {
|
||||
this._timeoutIdsRegistry.register(timeout, id);
|
||||
}
|
||||
this._timeoutIdsRegistry?.register(timeout, id);
|
||||
return timeout;
|
||||
}
|
||||
|
||||
_unregisterTimeout(timeout) {
|
||||
if (this._timeoutIdsRegistry) {
|
||||
this._timeoutIdsRegistry.unregister(timeout);
|
||||
}
|
||||
this._timeoutIdsRegistry?.unregister(timeout);
|
||||
|
||||
const data = this._timeoutIds.get(timeout);
|
||||
if (!data) {
|
||||
|
|
|
@ -950,10 +950,9 @@ class Doc extends PDFObject {
|
|||
}
|
||||
|
||||
getPrintParams() {
|
||||
if (!this._printParams) {
|
||||
this._printParams = new PrintParams({ lastPage: this._numPages - 1 });
|
||||
}
|
||||
return this._printParams;
|
||||
return (this._printParams ||= new PrintParams({
|
||||
lastPage: this._numPages - 1,
|
||||
}));
|
||||
}
|
||||
|
||||
getSound() {
|
||||
|
|
|
@ -91,9 +91,7 @@ class EventDispatcher {
|
|||
} else if (id === "app" && baseEvent.name === "ResetForm") {
|
||||
for (const fieldId of baseEvent.ids) {
|
||||
const obj = this._objects[fieldId];
|
||||
if (obj) {
|
||||
obj.obj._reset();
|
||||
}
|
||||
obj?.obj._reset();
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue