« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/find-reverse.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/find-reverse.js')
-rw-r--r--src/find-reverse.js7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/find-reverse.js b/src/find-reverse.js
index f31d3c45..6a67ac0f 100644
--- a/src/find-reverse.js
+++ b/src/find-reverse.js
@@ -17,10 +17,17 @@ export function getAllSpecs({
 
   const specs = {...hardcodedSpecs};
 
+  const seenSpecs = new Set();
+
   for (const thingConstructor of Object.values(thingConstructors)) {
     const thingSpecs = thingConstructor[constructorKey];
     if (!thingSpecs) continue;
 
+    // Subclasses can expose literally the same static properties
+    // by inheritence. We don't want to double-count those!
+    if (seenSpecs.has(thingSpecs)) continue;
+    seenSpecs.add(thingSpecs);
+
     for (const [key, spec] of Object.entries(thingSpecs)) {
       specs[key] =
         postprocessSpec(spec, {