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.
*/
import { objectFromEntries } from "../shared/util.js";
/**
* Key/value storage for annotation data in forms.
*/
@ -67,7 +69,7 @@ class AnnotationStorage {
if (this._storage.size === 0) {
return null;
}
return Object.fromEntries(this._storage);
return objectFromEntries(this._storage);
}
get size() {

View File

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

View File

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