diff --git a/pdfjs.config b/pdfjs.config index dd702ec78..cfad80411 100644 --- a/pdfjs.config +++ b/pdfjs.config @@ -1,5 +1,5 @@ { "stableVersion": "6.1.200", - "baseVersion": "b168293c173b0b9befe462c0b254136cf038c3ef", - "versionPrefix": "6.1." + "baseVersion": "eddd70a2ca1054ad2e0792972c3f2774b89f0cd2", + "versionPrefix": "6.2." } diff --git a/src/core/catalog.js b/src/core/catalog.js index 59d571b02..0a7491a3d 100644 --- a/src/core/catalog.js +++ b/src/core/catalog.js @@ -1076,17 +1076,18 @@ class Catalog { break; case "PrintPageRange": // The number of elements must be even. - if (Array.isArray(value) && value.length % 2 === 0) { - const isValid = value.every( + if ( + Array.isArray(value) && + value.length % 2 === 0 && + value.every( (page, i, arr) => Number.isInteger(page) && page > 0 && (i === 0 || page >= arr[i - 1]) && page <= this.numPages - ); - if (isValid) { - prefValue = value; - } + ) + ) { + prefValue = value; } break; case "NumCopies": @@ -1103,8 +1104,7 @@ class Catalog { warn(`Bad value, for key "${key}", in ViewerPreferences: ${value}.`); continue; } - prefs ??= Object.create(null); - prefs[key] = prefValue; + (prefs ??= new Map()).set(key, prefValue); } return shadow(this, "viewerPreferences", prefs); } diff --git a/src/display/api.js b/src/display/api.js index 77d055bc0..7fc4810d8 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -820,9 +820,9 @@ class PDFDocumentProxy { } /** - * @returns {Promise} A promise that is resolved with an - * {Object} containing the viewer preferences, or `null` when no viewer - * preferences are present in the PDF file. + * @returns {Promise} A promise that is resolved with a {Map} + * containing the viewer preferences, or `null` when no viewer preferences + * are present in the PDF file. */ getViewerPreferences() { return this._transport.getViewerPreferences(); diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index 5ac9ec8f9..ff7ee6ba3 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -1760,7 +1760,7 @@ describe("api", function () { it("gets non-default viewer preferences", async function () { const prefs = await pdfDocument.getViewerPreferences(); - expect(prefs).toEqual({ Direction: "L2R" }); + expect(prefs).toEqual(new Map([["Direction", "L2R"]])); }); it("gets default open action", async function () {