Skip to content

Commit

Permalink
Merge pull request #13892 from Snuffleupagus/Dict-merge-refactor-2
Browse files Browse the repository at this point in the history
Move some validation, in `Dict.merge`, used during merging of sub-dictionaries (PR 13775 follow-up)
  • Loading branch information
timvandermeij authored Aug 14, 2021
2 parents 0e7df95 + 3369f9a commit e9146b1
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/core/primitives.js
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,11 @@ class Dict {
if (property === undefined) {
property = [];
properties.set(key, property);
} else if (!mergeSubDicts) {
continue; // Ignore additional entries for a "shallow" merge.
} else if (!mergeSubDicts || !(value instanceof Dict)) {
// Ignore additional entries, if either:
// - This is a "shallow" merge, where only the first element matters.
// - The value is *not* a `Dict`, since other types cannot be merged.
continue;
}
property.push(value);
}
Expand All @@ -211,9 +214,6 @@ class Dict {
const subDict = new Dict(xref);

for (const dict of values) {
if (!(dict instanceof Dict)) {
continue;
}
for (const [key, value] of Object.entries(dict._map)) {
if (subDict._map[key] === undefined) {
subDict._map[key] = value;
Expand Down

0 comments on commit e9146b1

Please # to comment.