aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/bg/js/dictionary.js28
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});