Update DictionaryDataUtil to be able to be used in a sandbox frame (#1206)

This commit is contained in:
toasted-nutbread 2021-01-07 20:24:22 -05:00 committed by GitHub
parent 3760b22a25
commit 7d706df66b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 4 deletions

View File

@ -84,7 +84,8 @@
{
"files": [
"ext/mixed/js/core.js",
"ext/bg/js/template-renderer.js"
"ext/bg/js/template-renderer.js",
"ext/mixed/js/dictionary-data-util.js"
],
"env": {
"webextensions": false
@ -94,7 +95,8 @@
"files": ["ext/**/*.js"],
"excludedFiles": [
"ext/mixed/js/core.js",
"ext/bg/js/template-renderer.js"
"ext/bg/js/template-renderer.js",
"ext/mixed/js/dictionary-data-util.js"
],
"globals": {
"errorToJson": "readonly",

View File

@ -52,8 +52,8 @@ class DictionaryDataUtil {
const exclusiveExpressions = [];
const exclusiveReadings = [];
const resultExpressions = result.expressions;
if (!areSetsEqual(resultExpressions, allExpressions)) {
exclusiveExpressions.push(...getSetIntersection(resultExpressions, allExpressions));
if (!this._areSetsEqual(resultExpressions, allExpressions)) {
exclusiveExpressions.push(...this._getSetIntersection(resultExpressions, allExpressions));
}
if (multipleReadings) {
exclusiveReadings.push(result.reading);
@ -71,6 +71,8 @@ class DictionaryDataUtil {
return results2;
}
// Private
static _findExistingPitchAccentInfo(reading, position, tags, pitchAccentInfoList) {
for (const pitchInfo of pitchAccentInfoList) {
if (
@ -98,4 +100,28 @@ class DictionaryDataUtil {
return true;
}
static _areSetsEqual(set1, set2) {
if (set1.size !== set2.size) {
return false;
}
for (const value of set1) {
if (!set2.has(value)) {
return false;
}
}
return true;
}
static _getSetIntersection(set1, set2) {
const result = [];
for (const value of set1) {
if (set2.has(value)) {
result.push(value);
}
}
return result;
}
}