Update all Object.fromEntries call-sites to ensure that a null prototype is used

Given that `Object.fromEntries` doesn't seem to *guarantee* that a `null` prototype is used, we thus hack around that by using `Object.assign` with `Object.create(null)`.
This commit is contained in:
Jonas Jenwald 2020-10-28 14:14:27 +01:00
parent 9fc7cdcc9d
commit 820fb7f969
3 changed files with 7 additions and 5 deletions

View File

@ -13,6 +13,8 @@
* limitations under the License. * limitations under the License.
*/ */
import { objectFromEntries } from "../shared/util.js";
/** /**
* Key/value storage for annotation data in forms. * Key/value storage for annotation data in forms.
*/ */
@ -67,7 +69,7 @@ class AnnotationStorage {
if (this._storage.size === 0) { if (this._storage.size === 0) {
return null; return null;
} }
return Object.fromEntries(this._storage); return objectFromEntries(this._storage);
} }
get size() { get size() {

View File

@ -13,7 +13,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { assert } from "../shared/util.js"; import { assert, objectFromEntries } from "../shared/util.js";
import { SimpleXMLParser } from "../shared/xml_parser.js"; import { SimpleXMLParser } from "../shared/xml_parser.js";
class Metadata { class Metadata {
@ -118,7 +118,7 @@ class Metadata {
} }
getAll() { getAll() {
return Object.fromEntries(this._metadataMap); return objectFromEntries(this._metadataMap);
} }
has(name) { has(name) {

View File

@ -12,7 +12,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
import { warn } from "../shared/util.js"; import { objectFromEntries, warn } from "../shared/util.js";
class OptionalContentGroup { class OptionalContentGroup {
constructor(name, intent) { constructor(name, intent) {
@ -145,7 +145,7 @@ class OptionalContentConfig {
if (!this._groups.size) { if (!this._groups.size) {
return null; return null;
} }
return Object.fromEntries(this._groups); return objectFromEntries(this._groups);
} }
getGroup(id) { getGroup(id) {