Merge pull request #13775 from Snuffleupagus/Dict-merge-refactor

Remove some duplication in the `Dict.merge` method
This commit is contained in:
Tim van der Meij 2021-07-24 14:21:41 +02:00 committed by GitHub
commit 9854b85dc1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -185,22 +185,8 @@ class Dict {
}
static merge({ xref, dictArray, mergeSubDicts = false }) {
const mergedDict = new Dict(xref);
if (!mergeSubDicts) {
for (const dict of dictArray) {
if (!(dict instanceof Dict)) {
continue;
}
for (const [key, value] of Object.entries(dict._map)) {
if (mergedDict._map[key] === undefined) {
mergedDict._map[key] = value;
}
}
}
return mergedDict.size > 0 ? mergedDict : Dict.empty;
}
const properties = new Map();
const mergedDict = new Dict(xref),
properties = new Map();
for (const dict of dictArray) {
if (!(dict instanceof Dict)) {
@ -211,6 +197,8 @@ class Dict {
if (property === undefined) {
property = [];
properties.set(key, property);
} else if (!mergeSubDicts) {
continue; // Ignore additional entries for a "shallow" merge.
}
property.push(value);
}