diff --git a/src/display/annotation_storage.js b/src/display/annotation_storage.js index 5af4cf59a..145b3faa9 100644 --- a/src/display/annotation_storage.js +++ b/src/display/annotation_storage.js @@ -14,7 +14,7 @@ */ import { deprecated } from "./display_utils.js"; -import { objectFromEntries } from "../shared/util.js"; +import { objectFromMap } from "../shared/util.js"; /** * Key/value storage for annotation data in forms. @@ -91,7 +91,7 @@ class AnnotationStorage { } getAll() { - return this._storage.size > 0 ? objectFromEntries(this._storage) : null; + return this._storage.size > 0 ? objectFromMap(this._storage) : null; } get size() { diff --git a/src/display/metadata.js b/src/display/metadata.js index 3c7da06f7..48b1fdc7a 100644 --- a/src/display/metadata.js +++ b/src/display/metadata.js @@ -13,7 +13,7 @@ * limitations under the License. */ -import { objectFromEntries } from "../shared/util.js"; +import { objectFromMap } from "../shared/util.js"; class Metadata { constructor({ parsedData, rawData }) { @@ -30,7 +30,7 @@ class Metadata { } getAll() { - return objectFromEntries(this._metadataMap); + return objectFromMap(this._metadataMap); } has(name) { diff --git a/src/display/optional_content_config.js b/src/display/optional_content_config.js index 7e664a3e5..7d1f3178e 100644 --- a/src/display/optional_content_config.js +++ b/src/display/optional_content_config.js @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { objectFromEntries, warn } from "../shared/util.js"; +import { objectFromMap, warn } from "../shared/util.js"; class OptionalContentGroup { constructor(name, intent) { @@ -142,10 +142,7 @@ class OptionalContentConfig { } getGroups() { - if (!this._groups.size) { - return null; - } - return objectFromEntries(this._groups); + return this._groups.size > 0 ? objectFromMap(this._groups) : null; } getGroup(id) { diff --git a/src/shared/util.js b/src/shared/util.js index c175f0a2b..cfa37d033 100644 --- a/src/shared/util.js +++ b/src/shared/util.js @@ -597,9 +597,14 @@ function objectSize(obj) { return Object.keys(obj).length; } -// Ensures that the returned Object has a `null` prototype. -function objectFromEntries(iterable) { - return Object.assign(Object.create(null), Object.fromEntries(iterable)); +// Ensure that the returned Object has a `null` prototype; hence why +// `Object.fromEntries(...)` is not used. +function objectFromMap(map) { + const obj = Object.create(null); + for (const [key, value] of map) { + obj[key] = value; + } + return obj; } // Checks the endianness of the platform. @@ -1006,7 +1011,7 @@ export { isSameOrigin, isString, MissingPDFException, - objectFromEntries, + objectFromMap, objectSize, OPS, PageActionEventType,