diff --git a/src/core/catalog.js b/src/core/catalog.js index 856e384fec7841..6dbc0096269988 100644 --- a/src/core/catalog.js +++ b/src/core/catalog.js @@ -438,13 +438,13 @@ class Catalog { return shadow(this, "optionalContentConfig", null); } const groups = []; - const groupRefs = []; + const groupRefs = new RefSet(); // Ensure all the optional content groups are valid. for (const groupRef of groupsData) { - if (!(groupRef instanceof Ref)) { + if (!(groupRef instanceof Ref) || groupRefs.has(groupRef)) { continue; } - groupRefs.push(groupRef); + groupRefs.put(groupRef); const group = this.xref.fetchIfRef(groupRef); groups.push({ id: groupRef.toString(), @@ -477,7 +477,7 @@ class Catalog { if (!(value instanceof Ref)) { continue; } - if (contentGroupRefs.includes(value)) { + if (contentGroupRefs.has(value)) { onParsed.push(value.toString()); } } @@ -492,7 +492,7 @@ class Catalog { const order = []; for (const value of refs) { - if (value instanceof Ref && contentGroupRefs.includes(value)) { + if (value instanceof Ref && contentGroupRefs.has(value)) { parsedOrderRefs.put(value); // Handle "hidden" groups, see below. order.push(value.toString());