Merge pull request #17550 from Snuffleupagus/arrow-fn-shorter

Use shorter arrow functions where possible
This commit is contained in:
Jonas Jenwald 2024-01-21 17:21:32 +01:00 committed by GitHub
commit fce822cde0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
37 changed files with 156 additions and 252 deletions

View File

@ -242,9 +242,9 @@
}], }],
// ECMAScript 6 // ECMAScript 6
"arrow-body-style": ["error", "as-needed"],
"constructor-super": "error", "constructor-super": "error",
"no-class-assign": "error", "no-class-assign": "error",
"no-confusing-arrow": "error",
"no-const-assign": "error", "no-const-assign": "error",
"no-dupe-class-members": "error", "no-dupe-class-members": "error",
"no-duplicate-imports": "error", "no-duplicate-imports": "error",

View File

@ -79,6 +79,7 @@ class AnnotationFactory {
// with "GoToE" actions, from throwing and thus breaking parsing: // with "GoToE" actions, from throwing and thus breaking parsing:
pdfManager.ensureCatalog("attachments"), pdfManager.ensureCatalog("attachments"),
]).then( ]).then(
// eslint-disable-next-line arrow-body-style
([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments]) => { ([acroForm, xfaDatasets, structTreeRoot, baseUrl, attachments]) => {
return { return {
pdfManager, pdfManager,
@ -2133,11 +2134,8 @@ class WidgetAnnotation extends Annotation {
value, value,
}; };
const encoder = val => { const encoder = val =>
return isAscii(val) isAscii(val) ? val : stringToUTF16String(val, /* bigEndian = */ true);
? val
: stringToUTF16String(val, /* bigEndian = */ true);
};
dict.set("V", Array.isArray(value) ? value.map(encoder) : encoder(value)); dict.set("V", Array.isArray(value) ? value.map(encoder) : encoder(value));
this.amendSavedDict(annotationStorage, dict); this.amendSavedDict(annotationStorage, dict);
@ -4824,9 +4822,7 @@ class StampAnnotation extends MarkupAnnotation {
const jpegBufferPromise = canvas const jpegBufferPromise = canvas
.convertToBlob({ type: "image/jpeg", quality: 1 }) .convertToBlob({ type: "image/jpeg", quality: 1 })
.then(blob => { .then(blob => blob.arrayBuffer());
return blob.arrayBuffer();
});
const xobjectName = Name.get("XObject"); const xobjectName = Name.get("XObject");
const imageName = Name.get("Image"); const imageName = Name.get("Image");

View File

@ -893,14 +893,13 @@ class Catalog {
case "PrintPageRange": case "PrintPageRange":
// The number of elements must be even. // The number of elements must be even.
if (Array.isArray(value) && value.length % 2 === 0) { if (Array.isArray(value) && value.length % 2 === 0) {
const isValid = value.every((page, i, arr) => { const isValid = value.every(
return ( (page, i, arr) =>
Number.isInteger(page) && Number.isInteger(page) &&
page > 0 && page > 0 &&
(i === 0 || page >= arr[i - 1]) && (i === 0 || page >= arr[i - 1]) &&
page <= this.numPages page <= this.numPages
); );
});
if (isValid) { if (isValid) {
prefValue = value; prefValue = value;
} }

View File

@ -691,9 +691,9 @@ async function createBuiltInCMap(name, fetchBuiltInCMap) {
const cMap = new CMap(true); const cMap = new CMap(true);
if (compressionType === CMapCompressionType.BINARY) { if (compressionType === CMapCompressionType.BINARY) {
return new BinaryCMapReader().process(cMapData, cMap, useCMap => { return new BinaryCMapReader().process(cMapData, cMap, useCMap =>
return extendCMap(cMap, fetchBuiltInCMap, useCMap); extendCMap(cMap, fetchBuiltInCMap, useCMap)
}); );
} }
if (compressionType === CMapCompressionType.NONE) { if (compressionType === CMapCompressionType.NONE) {
const lexer = new Lexer(new Stream(cMapData)); const lexer = new Lexer(new Stream(cMapData));

View File

@ -1577,6 +1577,7 @@ class PDFDocument {
} else { } else {
promise = catalog.getPageDict(pageIndex); promise = catalog.getPageDict(pageIndex);
} }
// eslint-disable-next-line arrow-body-style
promise = promise.then(([pageDict, ref]) => { promise = promise.then(([pageDict, ref]) => {
return new Page({ return new Page({
pdfManager: this.pdfManager, pdfManager: this.pdfManager,

View File

@ -1039,14 +1039,15 @@ class PartialEvaluator {
return translated; return translated;
}) })
.catch(reason => { .catch(
return new TranslatedFont({ reason =>
loadedName: "g_font_error", new TranslatedFont({
font: new ErrorFont(`Type3 font load error: ${reason}`), loadedName: "g_font_error",
dict: translated.font, font: new ErrorFont(`Type3 font load error: ${reason}`),
evaluatorOptions: this.options, dict: translated.font,
}); evaluatorOptions: this.options,
}); })
);
}) })
.then(translated => { .then(translated => {
state.font = translated.font; state.font = translated.font;
@ -1129,6 +1130,7 @@ class PartialEvaluator {
case "Font": case "Font":
isSimpleGState = false; isSimpleGState = false;
// eslint-disable-next-line arrow-body-style
promise = promise.then(() => { promise = promise.then(() => {
return this.handleSetFont( return this.handleSetFont(
resources, resources,
@ -1154,6 +1156,7 @@ class PartialEvaluator {
if (value instanceof Dict) { if (value instanceof Dict) {
isSimpleGState = false; isSimpleGState = false;
// eslint-disable-next-line arrow-body-style
promise = promise.then(() => { promise = promise.then(() => {
return this.handleSMask( return this.handleSMask(
value, value,
@ -1214,6 +1217,7 @@ class PartialEvaluator {
fallbackFontDict = null, fallbackFontDict = null,
cssFontInfo = null cssFontInfo = null
) { ) {
// eslint-disable-next-line arrow-body-style
const errorFont = async () => { const errorFont = async () => {
return new TranslatedFont({ return new TranslatedFont({
loadedName: "g_font_error", loadedName: "g_font_error",

View File

@ -2093,9 +2093,7 @@ class Font {
endOffset: 0, endOffset: 0,
}); });
} }
locaEntries.sort((a, b) => { locaEntries.sort((a, b) => a.offset - b.offset);
return a.offset - b.offset;
});
// Now the offsets are sorted, calculate the end offset of each glyph. // Now the offsets are sorted, calculate the end offset of each glyph.
// The last loca entry's endOffset is not calculated since it's the end // The last loca entry's endOffset is not calculated since it's the end
// of the data and will be stored on the previous entry's endOffset. // of the data and will be stored on the previous entry's endOffset.
@ -2103,9 +2101,7 @@ class Font {
locaEntries[i].endOffset = locaEntries[i + 1].offset; locaEntries[i].endOffset = locaEntries[i + 1].offset;
} }
// Re-sort so glyphs aren't out of order. // Re-sort so glyphs aren't out of order.
locaEntries.sort((a, b) => { locaEntries.sort((a, b) => a.index - b.index);
return a.index - b.index;
});
// Calculate the endOffset of the "first" glyph correctly when there are // Calculate the endOffset of the "first" glyph correctly when there are
// *multiple* empty ones at the start of the data (fixes issue14618.pdf). // *multiple* empty ones at the start of the data (fixes issue14618.pdf).
for (i = 0; i < numGlyphs; i++) { for (i = 0; i < numGlyphs; i++) {

View File

@ -344,10 +344,9 @@ async function incrementalUpdate({
// Add a ref for the new xref and sort them // Add a ref for the new xref and sort them
newRefs.push({ ref: refForXrefTable, data: "" }); newRefs.push({ ref: refForXrefTable, data: "" });
newRefs = newRefs.sort((a, b) => { newRefs = newRefs.sort(
// compare the refs (a, b) => /* compare the refs */ a.ref.num - b.ref.num
return a.ref.num - b.ref.num; );
});
const xrefTableData = [[0, 1, 0xffff]]; const xrefTableData = [[0, 1, 0xffff]];
const indexes = [0, 1]; const indexes = [0, 1];

View File

@ -129,12 +129,10 @@ function getRelevant(data) {
return data return data
.trim() .trim()
.split(/\s+/) .split(/\s+/)
.map(e => { .map(e => ({
return { excluded: e[0] === "-",
excluded: e[0] === "-", viewname: e.substring(1),
viewname: e.substring(1), }));
};
});
} }
function getColor(data, def = [0, 0, 0]) { function getColor(data, def = [0, 0, 0]) {

View File

@ -1838,9 +1838,10 @@ class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {
const getItems = event => { const getItems = event => {
const options = event.target.options; const options = event.target.options;
return Array.prototype.map.call(options, option => { return Array.prototype.map.call(options, option => ({
return { displayValue: option.textContent, exportValue: option.value }; displayValue: option.textContent,
}); exportValue: option.value,
}));
}; };
if (this.enableScripting && this.hasJSActions) { if (this.enableScripting && this.hasJSActions) {

View File

@ -771,19 +771,13 @@ class PDFDocumentProxy {
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) { if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
// For testing purposes. // For testing purposes.
Object.defineProperty(this, "getXFADatasets", { Object.defineProperty(this, "getXFADatasets", {
value: () => { value: () => this._transport.getXFADatasets(),
return this._transport.getXFADatasets();
},
}); });
Object.defineProperty(this, "getXRefPrevValue", { Object.defineProperty(this, "getXRefPrevValue", {
value: () => { value: () => this._transport.getXRefPrevValue(),
return this._transport.getXRefPrevValue();
},
}); });
Object.defineProperty(this, "getAnnotArray", { Object.defineProperty(this, "getAnnotArray", {
value: pageIndex => { value: pageIndex => this._transport.getAnnotArray(pageIndex),
return this._transport.getAnnotArray(pageIndex);
},
}); });
} }
} }
@ -1628,9 +1622,7 @@ class PDFPageProxy {
if (this._transport._htmlForXfa) { if (this._transport._htmlForXfa) {
// TODO: We need to revisit this once the XFA foreground patch lands and // TODO: We need to revisit this once the XFA foreground patch lands and
// only do this for non-foreground XFA. // only do this for non-foreground XFA.
return this.getXfa().then(xfa => { return this.getXfa().then(xfa => XfaText.textContent(xfa));
return XfaText.textContent(xfa);
});
} }
const readableStream = this.streamTextContent(params); const readableStream = this.streamTextContent(params);
@ -2358,21 +2350,16 @@ class WorkerTransport {
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) { if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
// For testing purposes. // For testing purposes.
Object.defineProperty(this, "getXFADatasets", { Object.defineProperty(this, "getXFADatasets", {
value: () => { value: () =>
return this.messageHandler.sendWithPromise("GetXFADatasets", null); this.messageHandler.sendWithPromise("GetXFADatasets", null),
},
}); });
Object.defineProperty(this, "getXRefPrevValue", { Object.defineProperty(this, "getXRefPrevValue", {
value: () => { value: () =>
return this.messageHandler.sendWithPromise("GetXRefPrevValue", null); this.messageHandler.sendWithPromise("GetXRefPrevValue", null),
},
}); });
Object.defineProperty(this, "getAnnotArray", { Object.defineProperty(this, "getAnnotArray", {
value: pageIndex => { value: pageIndex =>
return this.messageHandler.sendWithPromise("GetAnnotArray", { this.messageHandler.sendWithPromise("GetAnnotArray", { pageIndex }),
pageIndex,
});
},
}); });
} }
} }
@ -2737,9 +2724,7 @@ class WorkerTransport {
this.fontLoader this.fontLoader
.bind(font) .bind(font)
.catch(reason => { .catch(() => messageHandler.sendWithPromise("FontFallback", { id }))
return messageHandler.sendWithPromise("FontFallback", { id });
})
.finally(() => { .finally(() => {
if (!params.fontExtraProperties && font.data) { if (!params.fontExtraProperties && font.data) {
// Immediately release the `font.data` property once the font // Immediately release the `font.data` property once the font
@ -3013,9 +2998,7 @@ class WorkerTransport {
getOptionalContentConfig() { getOptionalContentConfig() {
return this.messageHandler return this.messageHandler
.sendWithPromise("GetOptionalContentConfig", null) .sendWithPromise("GetOptionalContentConfig", null)
.then(results => { .then(results => new OptionalContentConfig(results));
return new OptionalContentConfig(results);
});
} }
getPermissions() { getPermissions() {
@ -3030,14 +3013,12 @@ class WorkerTransport {
} }
const promise = this.messageHandler const promise = this.messageHandler
.sendWithPromise(name, null) .sendWithPromise(name, null)
.then(results => { .then(results => ({
return { info: results[0],
info: results[0], metadata: results[1] ? new Metadata(results[1]) : null,
metadata: results[1] ? new Metadata(results[1]) : null, contentDispositionFilename: this._fullReader?.filename ?? null,
contentDispositionFilename: this._fullReader?.filename ?? null, contentLength: this._fullReader?.contentLength ?? null,
contentLength: this._fullReader?.contentLength ?? null, }));
};
});
this.#methodPromises.set(name, promise); this.#methodPromises.set(name, promise);
return promise; return promise;
} }
@ -3192,9 +3173,7 @@ class RenderTask {
if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) { if (typeof PDFJSDev === "undefined" || PDFJSDev.test("TESTING")) {
// For testing purposes. // For testing purposes.
Object.defineProperty(this, "getOperatorList", { Object.defineProperty(this, "getOperatorList", {
value: () => { value: () => this.#internalRenderTask.operatorList,
return this.#internalRenderTask.operatorList;
},
}); });
} }
} }

View File

@ -2359,8 +2359,8 @@ class CanvasGraphics {
const color = IR[1]; const color = IR[1];
const baseTransform = this.baseTransform || getCurrentTransform(this.ctx); const baseTransform = this.baseTransform || getCurrentTransform(this.ctx);
const canvasGraphicsFactory = { const canvasGraphicsFactory = {
createCanvasGraphics: ctx => { createCanvasGraphics: ctx =>
return new CanvasGraphics( new CanvasGraphics(
ctx, ctx,
this.commonObjs, this.commonObjs,
this.objs, this.objs,
@ -2370,8 +2370,7 @@ class CanvasGraphics {
optionalContentConfig: this.optionalContentConfig, optionalContentConfig: this.optionalContentConfig,
markedContentStack: this.markedContentStack, markedContentStack: this.markedContentStack,
} }
); ),
},
}; };
pattern = new TilingPattern( pattern = new TilingPattern(
IR, IR,

View File

@ -466,15 +466,13 @@ class DOMCMapReaderFactory extends BaseCMapReaderFactory {
return fetchData( return fetchData(
url, url,
/* type = */ this.isCompressed ? "arraybuffer" : "text" /* type = */ this.isCompressed ? "arraybuffer" : "text"
).then(data => { ).then(data => ({
return { cMapData:
cMapData: data instanceof ArrayBuffer
data instanceof ArrayBuffer ? new Uint8Array(data)
? new Uint8Array(data) : stringToBytes(data),
: stringToBytes(data), compressionType,
compressionType, }));
};
});
} }
} }
@ -483,9 +481,9 @@ class DOMStandardFontDataFactory extends BaseStandardFontDataFactory {
* @ignore * @ignore
*/ */
_fetchData(url) { _fetchData(url) {
return fetchData(url, /* type = */ "arraybuffer").then(data => { return fetchData(url, /* type = */ "arraybuffer").then(
return new Uint8Array(data); data => new Uint8Array(data)
}); );
} }
} }

View File

@ -606,15 +606,14 @@ class AnnotationEditorUIManager {
static get _keyboardManager() { static get _keyboardManager() {
const proto = AnnotationEditorUIManager.prototype; const proto = AnnotationEditorUIManager.prototype;
const arrowChecker = self => { /**
// If the focused element is an input, we don't want to handle the arrow. * If the focused element is an input, we don't want to handle the arrow.
// For example, sliders can be controlled with the arrow keys. * For example, sliders can be controlled with the arrow keys.
return ( */
self.#container.contains(document.activeElement) && const arrowChecker = self =>
document.activeElement.tagName !== "BUTTON" && self.#container.contains(document.activeElement) &&
self.hasSomethingToControl() document.activeElement.tagName !== "BUTTON" &&
); self.hasSomethingToControl();
};
const textInputChecker = (_self, { target: el }) => { const textInputChecker = (_self, { target: el }) => {
if (el instanceof HTMLInputElement) { if (el instanceof HTMLInputElement) {

View File

@ -147,9 +147,8 @@ class PDFFetchStreamReader {
this._reader = response.body.getReader(); this._reader = response.body.getReader();
this._headersCapability.resolve(); this._headersCapability.resolve();
const getResponseHeader = name => { const getResponseHeader = name => response.headers.get(name);
return response.headers.get(name);
};
const { allowRangeRequests, suggestedLength } = const { allowRangeRequests, suggestedLength } =
validateRangeRequestCapabilities({ validateRangeRequestCapabilities({
getResponseHeader, getResponseHeader,

View File

@ -279,9 +279,8 @@ class PDFNetworkStreamFullRequestReader {
const fullRequestXhrId = this._fullRequestId; const fullRequestXhrId = this._fullRequestId;
const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
const getResponseHeader = name => { const getResponseHeader = name => fullRequestXhr.getResponseHeader(name);
return fullRequestXhr.getResponseHeader(name);
};
const { allowRangeRequests, suggestedLength } = const { allowRangeRequests, suggestedLength } =
validateRangeRequestCapabilities({ validateRangeRequestCapabilities({
getResponseHeader, getResponseHeader,

View File

@ -326,11 +326,11 @@ class PDFNodeStreamFullReader extends BaseFullReader {
this._headersCapability.resolve(); this._headersCapability.resolve();
this._setReadableStream(response); this._setReadableStream(response);
const getResponseHeader = name => { // Make sure that headers name are in lower case, as mentioned
// Make sure that headers name are in lower case, as mentioned // here: https://nodejs.org/api/http.html#http_message_headers.
// here: https://nodejs.org/api/http.html#http_message_headers. const getResponseHeader = name =>
return this._readableStream.headers[name.toLowerCase()]; this._readableStream.headers[name.toLowerCase()];
};
const { allowRangeRequests, suggestedLength } = const { allowRangeRequests, suggestedLength } =
validateRangeRequestCapabilities({ validateRangeRequestCapabilities({
getResponseHeader, getResponseHeader,

View File

@ -98,9 +98,7 @@ class NodeCMapReaderFactory extends BaseCMapReaderFactory {
* @ignore * @ignore
*/ */
_fetchData(url, compressionType) { _fetchData(url, compressionType) {
return fetchData(url).then(data => { return fetchData(url).then(data => ({ cMapData: data, compressionType }));
return { cMapData: data, compressionType };
});
} }
} }

View File

@ -141,9 +141,7 @@ class Sandbox {
} }
function QuickJSSandbox() { function QuickJSSandbox() {
return ModuleLoader().then(module => { return ModuleLoader().then(module => new Sandbox(window, module));
return new Sandbox(window, module);
});
} }
export { QuickJSSandbox }; export { QuickJSSandbox };

View File

@ -212,66 +212,26 @@ class Util extends PDFObject {
} }
const handlers = { const handlers = {
mmmm: data => { mmmm: data => this._months[data.month],
return this._months[data.month]; mmm: data => this._months[data.month].substring(0, 3),
}, mm: data => (data.month + 1).toString().padStart(2, "0"),
mmm: data => { m: data => (data.month + 1).toString(),
return this._months[data.month].substring(0, 3); dddd: data => this._days[data.dayOfWeek],
}, ddd: data => this._days[data.dayOfWeek].substring(0, 3),
mm: data => { dd: data => data.day.toString().padStart(2, "0"),
return (data.month + 1).toString().padStart(2, "0"); d: data => data.day.toString(),
}, yyyy: data => data.year.toString(),
m: data => { yy: data => (data.year % 100).toString().padStart(2, "0"),
return (data.month + 1).toString(); HH: data => data.hours.toString().padStart(2, "0"),
}, H: data => data.hours.toString(),
dddd: data => { hh: data => (1 + ((data.hours + 11) % 12)).toString().padStart(2, "0"),
return this._days[data.dayOfWeek]; h: data => (1 + ((data.hours + 11) % 12)).toString(),
}, MM: data => data.minutes.toString().padStart(2, "0"),
ddd: data => { M: data => data.minutes.toString(),
return this._days[data.dayOfWeek].substring(0, 3); ss: data => data.seconds.toString().padStart(2, "0"),
}, s: data => data.seconds.toString(),
dd: data => { tt: data => (data.hours < 12 ? "am" : "pm"),
return data.day.toString().padStart(2, "0"); t: data => (data.hours < 12 ? "a" : "p"),
},
d: data => {
return data.day.toString();
},
yyyy: data => {
return data.year.toString();
},
yy: data => {
return (data.year % 100).toString().padStart(2, "0");
},
HH: data => {
return data.hours.toString().padStart(2, "0");
},
H: data => {
return data.hours.toString();
},
hh: data => {
return (1 + ((data.hours + 11) % 12)).toString().padStart(2, "0");
},
h: data => {
return (1 + ((data.hours + 11) % 12)).toString();
},
MM: data => {
return data.minutes.toString().padStart(2, "0");
},
M: data => {
return data.minutes.toString();
},
ss: data => {
return data.seconds.toString().padStart(2, "0");
},
s: data => {
return data.seconds.toString();
},
tt: data => {
return data.hours < 12 ? "am" : "pm";
},
t: data => {
return data.hours < 12 ? "a" : "p";
},
}; };
const data = { const data = {

View File

@ -1039,9 +1039,9 @@ function normalizeUnicode(str) {
/([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu; /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu;
NormalizationMap = new Map([["ſt", "ſt"]]); NormalizationMap = new Map([["ſt", "ſt"]]);
} }
return str.replaceAll(NormalizeRegex, (_, p1, p2) => { return str.replaceAll(NormalizeRegex, (_, p1, p2) =>
return p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2); p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2)
}); );
} }
function getUuid() { function getUuid() {

View File

@ -106,6 +106,7 @@ async function inlineImages(node, silentErrors = false) {
} }
return response.blob(); return response.blob();
}) })
// eslint-disable-next-line arrow-body-style
.then(blob => { .then(blob => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const reader = new FileReader(); const reader = new FileReader();
@ -117,6 +118,7 @@ async function inlineImages(node, silentErrors = false) {
reader.readAsDataURL(blob); reader.readAsDataURL(blob);
}); });
}) })
// eslint-disable-next-line arrow-body-style
.then(dataUrl => { .then(dataUrl => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
image.onload = resolve; image.onload = resolve;

View File

@ -237,9 +237,10 @@ describe("FreeText Editor", () => {
await clearAll(page); await clearAll(page);
for (const n of [0, 1, 2]) { for (const n of [0, 1, 2]) {
const hasEditor = await page.evaluate(sel => { const hasEditor = await page.evaluate(
return !!document.querySelector(sel); sel => !!document.querySelector(sel),
}, getEditorSelector(n)); getEditorSelector(n)
);
expect(hasEditor).withContext(`In ${browserName}`).toEqual(false); expect(hasEditor).withContext(`In ${browserName}`).toEqual(false);
} }

View File

@ -38,8 +38,8 @@ const getXY = (page, selector) =>
return `${bbox.x}::${bbox.y}`; return `${bbox.x}::${bbox.y}`;
}, selector); }, selector);
const getSpanRectFromText = (page, pageNumber, text) => { const getSpanRectFromText = (page, pageNumber, text) =>
return page.evaluate( page.evaluate(
(number, content) => { (number, content) => {
for (const el of document.querySelectorAll( for (const el of document.querySelectorAll(
`.page[data-page-number="${number}"] > .textLayer > span` `.page[data-page-number="${number}"] > .textLayer > span`
@ -54,7 +54,6 @@ const getSpanRectFromText = (page, pageNumber, text) => {
pageNumber, pageNumber,
text text
); );
};
describe("Highlight Editor", () => { describe("Highlight Editor", () => {
describe("Editor must be removed without exception", () => { describe("Editor must be removed without exception", () => {

View File

@ -265,9 +265,10 @@ async function serializeBitmapDimensions(page) {
const { map } = const { map } =
window.PDFViewerApplication.pdfDocument.annotationStorage.serializable; window.PDFViewerApplication.pdfDocument.annotationStorage.serializable;
return map return map
? Array.from(map.values(), x => { ? Array.from(map.values(), x => ({
return { width: x.bitmap.width, height: x.bitmap.height }; width: x.bitmap.width,
}) height: x.bitmap.height,
}))
: []; : [];
}); });
} }

View File

@ -942,14 +942,10 @@ describe("api", function () {
); );
const loadingTask1 = getDocument(basicApiGetDocumentParams); const loadingTask1 = getDocument(basicApiGetDocumentParams);
const promise1 = loadingTask1.promise.then(pdfDoc => { const promise1 = loadingTask1.promise.then(pdfDoc => pdfDoc.numPages);
return pdfDoc.numPages;
});
const loadingTask2 = getDocument(tracemonkeyGetDocumentParams); const loadingTask2 = getDocument(tracemonkeyGetDocumentParams);
const promise2 = loadingTask2.promise.then(pdfDoc => { const promise2 = loadingTask2.promise.then(pdfDoc => pdfDoc.numPages);
return pdfDoc.numPages;
});
const [numPages1, numPages2] = await Promise.all([promise1, promise2]); const [numPages1, numPages2] = await Promise.all([promise1, promise2]);
expect(numPages1).toEqual(3); expect(numPages1).toEqual(3);
@ -2693,9 +2689,7 @@ describe("api", function () {
const viewPromises = []; const viewPromises = [];
for (let i = 0; i < numPages; i++) { for (let i = 0; i < numPages; i++) {
viewPromises[i] = pdfDoc.getPage(i + 1).then(pdfPage => { viewPromises[i] = pdfDoc.getPage(i + 1).then(pdfPage => pdfPage.view);
return pdfPage.view;
});
} }
const [page1, page2, page3] = await Promise.all(viewPromises); const [page1, page2, page3] = await Promise.all(viewPromises);
@ -3416,7 +3410,9 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`)
}) })
); );
// eslint-disable-next-line arrow-body-style
const result1 = loadingTask1.promise.then(pdfDoc => { const result1 = loadingTask1.promise.then(pdfDoc => {
// eslint-disable-next-line arrow-body-style
return pdfDoc.getPage(1).then(pdfPage => { return pdfDoc.getPage(1).then(pdfPage => {
return pdfPage.getOperatorList().then(opList => { return pdfPage.getOperatorList().then(opList => {
expect(opList.fnArray.length).toBeGreaterThan(100); expect(opList.fnArray.length).toBeGreaterThan(100);
@ -3429,7 +3425,9 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`)
}); });
}); });
// eslint-disable-next-line arrow-body-style
const result2 = loadingTask2.promise.then(pdfDoc => { const result2 = loadingTask2.promise.then(pdfDoc => {
// eslint-disable-next-line arrow-body-style
return pdfDoc.getPage(1).then(pdfPage => { return pdfDoc.getPage(1).then(pdfPage => {
return pdfPage.getOperatorList().then(opList => { return pdfPage.getOperatorList().then(opList => {
expect(opList.fnArray.length).toEqual(0); expect(opList.fnArray.length).toEqual(0);
@ -3901,9 +3899,9 @@ Caron Broadcasting, Inc., an Ohio corporation (“Lessee”).`)
true true
); );
expect( expect(
currentImgData.data.every((value, index) => { currentImgData.data.every(
return value === firstImgData.data[index]; (value, index) => value === firstImgData.data[index]
}) )
).toEqual(true); ).toEqual(true);
if (i === NUM_PAGES_THRESHOLD) { if (i === NUM_PAGES_THRESHOLD) {

View File

@ -377,9 +377,7 @@ describe("CFFCompiler", function () {
bytes = new Uint8Array(bytes); bytes = new Uint8Array(bytes);
return new CFFParser( return new CFFParser(
{ {
getBytes: () => { getBytes: () => bytes,
return bytes;
},
}, },
{}, {},
SEAC_ANALYSIS_ENABLED SEAC_ANALYSIS_ENABLED

View File

@ -24,9 +24,7 @@ import { MessageHandler } from "../../src/shared/message_handler.js";
describe("message_handler", function () { describe("message_handler", function () {
// Sleep function to wait for sometime, similar to setTimeout but faster. // Sleep function to wait for sometime, similar to setTimeout but faster.
function sleep(ticks) { function sleep(ticks) {
return Promise.resolve().then(() => { return Promise.resolve().then(() => ticks && sleep(ticks - 1));
return ticks && sleep(ticks - 1);
});
} }
describe("sendWithStream", function () { describe("sendWithStream", function () {

View File

@ -62,9 +62,7 @@ describe("node_stream", function () {
const [start, end] = request.headers.range const [start, end] = request.headers.range
.split("=")[1] .split("=")[1]
.split("-") .split("-")
.map(x => { .map(x => Number(x));
return Number(x);
});
const stream = fs.createReadStream(filePath, { start, end }); const stream = fs.createReadStream(filePath, { start, end });
response.writeHead(206, { response.writeHead(206, {
"Content-Type": "application/pdf", "Content-Type": "application/pdf",

View File

@ -121,9 +121,7 @@ function testSearch({
} }
} }
const totalMatches = matchesPerPage.reduce((a, b) => { const totalMatches = matchesPerPage.reduce((a, b) => a + b);
return a + b;
});
if (updateFindControlState) { if (updateFindControlState) {
eventBus.on( eventBus.on(

View File

@ -52,9 +52,9 @@ describe("Scripting", function () {
send_queue.set(command, { command, value }); send_queue.set(command, { command, value });
}; };
// eslint-disable-next-line no-unsanitized/method // eslint-disable-next-line no-unsanitized/method
const promise = import(sandboxBundleSrc).then(pdfjsSandbox => { const promise = import(sandboxBundleSrc).then(pdfjsSandbox =>
return pdfjsSandbox.QuickJSSandbox(); pdfjsSandbox.QuickJSSandbox()
}); );
sandbox = { sandbox = {
createSandbox(data) { createSandbox(data) {
promise.then(sbx => sbx.create(data)); promise.then(sbx => sbx.create(data));
@ -152,14 +152,12 @@ describe("Scripting", function () {
}); });
it("should get field using a path", async () => { it("should get field using a path", async () => {
const base = value => { const base = value => ({
return { id: getId(),
id: getId(), value,
value, actions: {},
actions: {}, type: "text",
type: "text", });
};
};
const data = { const data = {
objects: { objects: {
A: [base(1)], A: [base(1)],

View File

@ -1764,9 +1764,7 @@ const PDFViewerApplication = {
.catch(() => { .catch(() => {
/* Avoid breaking printing; ignoring errors. */ /* Avoid breaking printing; ignoring errors. */
}) })
.then(() => { .then(() => this.pdfDocument?.annotationStorage.print);
return this.pdfDocument?.annotationStorage.print;
});
if (this.printService) { if (this.printService) {
// There is no way to suppress beforePrint/afterPrint events, // There is no way to suppress beforePrint/afterPrint events,

View File

@ -129,6 +129,7 @@ class PDFDocumentProperties {
this.#parseFileSize(contentLength), this.#parseFileSize(contentLength),
this.#parseDate(info.CreationDate), this.#parseDate(info.CreationDate),
this.#parseDate(info.ModDate), this.#parseDate(info.ModDate),
// eslint-disable-next-line arrow-body-style
this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { this.pdfDocument.getPage(currentPageNumber).then(pdfPage => {
return this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation); return this.#parsePageSize(getPageSizeInches(pdfPage), pagesRotation);
}), }),

View File

@ -842,12 +842,11 @@ class PDFFindController {
const extractTextCapability = new PromiseCapability(); const extractTextCapability = new PromiseCapability();
this._extractTextPromises[i] = extractTextCapability.promise; this._extractTextPromises[i] = extractTextCapability.promise;
// eslint-disable-next-line arrow-body-style
promise = promise.then(() => { promise = promise.then(() => {
return this._pdfDocument return this._pdfDocument
.getPage(i + 1) .getPage(i + 1)
.then(pdfPage => { .then(pdfPage => pdfPage.getTextContent(textOptions))
return pdfPage.getTextContent(textOptions);
})
.then( .then(
textContent => { textContent => {
const strBuf = []; const strBuf = [];

View File

@ -54,9 +54,7 @@ function addLinkAttributes(link, { url, target, rel, enabled = true } = {}) {
} else { } else {
link.href = ""; link.href = "";
link.title = `Disabled: ${url}`; link.title = `Disabled: ${url}`;
link.onclick = () => { link.onclick = () => false;
return false;
};
} }
let targetStr = ""; // LinkTarget.NONE let targetStr = ""; // LinkTarget.NONE

View File

@ -30,13 +30,9 @@ class PDFScriptingManagerComponents extends PDFScriptingManager {
} }
options.externalServices ||= { options.externalServices ||= {
createScripting: () => { createScripting: () => new GenericScripting(options.sandboxBundleSrc),
return new GenericScripting(options.sandboxBundleSrc);
},
};
options.docProperties ||= pdfDocument => {
return docProperties(pdfDocument);
}; };
options.docProperties ||= pdfDocument => docProperties(pdfDocument);
super(options); super(options);
} }
} }

View File

@ -206,20 +206,18 @@ function parseQueryString(query) {
return params; return params;
} }
const InvisibleCharactersRegExp = /[\x00-\x1F]/g; const InvisibleCharsRegExp = /[\x00-\x1F]/g;
/** /**
* @param {string} str * @param {string} str
* @param {boolean} [replaceInvisible] * @param {boolean} [replaceInvisible]
*/ */
function removeNullCharacters(str, replaceInvisible = false) { function removeNullCharacters(str, replaceInvisible = false) {
if (!InvisibleCharactersRegExp.test(str)) { if (!InvisibleCharsRegExp.test(str)) {
return str; return str;
} }
if (replaceInvisible) { if (replaceInvisible) {
return str.replaceAll(InvisibleCharactersRegExp, m => { return str.replaceAll(InvisibleCharsRegExp, m => (m === "\x00" ? "" : " "));
return m === "\x00" ? "" : " ";
});
} }
return str.replaceAll("\x00", ""); return str.replaceAll("\x00", "");
} }