diff options
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/bg/js/dictionary.js | 28 | 
1 files changed, 15 insertions, 13 deletions
| diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js index 532d17c7..3a4a58a1 100644 --- a/ext/bg/js/dictionary.js +++ b/ext/bg/js/dictionary.js @@ -178,11 +178,13 @@ function dictTermsMergeBySequence(definitions, mainDictionary) {  function dictTermsMergeByGloss(result, definitions, appendTo=null, mergedIndices=null) {      const definitionsByGloss = appendTo !== null ? appendTo : new Map();      for (const [index, definition] of definitions.entries()) { +        const {expression, reading} = definition; +          if (mergedIndices !== null) { -            const expressionMap = result.expressions.get(definition.expression); +            const expressionMap = result.expressions.get(expression);              if (                  typeof expressionMap !== 'undefined' && -                typeof expressionMap.get(definition.reading) !== 'undefined' +                typeof expressionMap.get(reading) !== 'undefined'              ) {                  mergedIndices.add(index);              } else { @@ -207,11 +209,11 @@ function dictTermsMergeByGloss(result, definitions, appendTo=null, mergedIndices              definitionsByGloss.set(gloss, glossDefinition);          } -        glossDefinition.expression.add(definition.expression); -        glossDefinition.reading.add(definition.reading); +        glossDefinition.expression.add(expression); +        glossDefinition.reading.add(reading); -        result.expression.add(definition.expression); -        result.reading.add(definition.reading); +        result.expression.add(expression); +        result.reading.add(reading);          for (const tag of definition.definitionTags) {              if (!glossDefinition.definitionTags.find((existingTag) => existingTag.name === tag.name)) { @@ -221,16 +223,16 @@ function dictTermsMergeByGloss(result, definitions, appendTo=null, mergedIndices          if (appendTo === null) {              // result->expressions[ Expression1[ Reading1[ Tag1, Tag2 ] ], Expression2, ... ] -            if (!result.expressions.has(definition.expression)) { -                result.expressions.set(definition.expression, new Map()); +            if (!result.expressions.has(expression)) { +                result.expressions.set(expression, new Map());              } -            if (!result.expressions.get(definition.expression).has(definition.reading)) { -                result.expressions.get(definition.expression).set(definition.reading, []); +            if (!result.expressions.get(expression).has(reading)) { +                result.expressions.get(expression).set(reading, []);              }              for (const tag of definition.termTags) { -                if (!result.expressions.get(definition.expression).get(definition.reading).find((existingTag) => existingTag.name === tag.name)) { -                    result.expressions.get(definition.expression).get(definition.reading).push(tag); +                if (!result.expressions.get(expression).get(reading).find((existingTag) => existingTag.name === tag.name)) { +                    result.expressions.get(expression).get(reading).push(tag);                  }              }          } @@ -251,7 +253,7 @@ function dictTermsMergeByGloss(result, definitions, appendTo=null, mergedIndices      }      return definitionsByGloss; -} +  }  function dictTagBuildSource(name) {      return dictTagSanitize({name, category: 'dictionary', order: 100}); |