diff --git a/frontend/__tests__/test/british-english.spec.ts b/frontend/__tests__/test/british-english.spec.ts index b0650bc89..12a7e53f4 100644 --- a/frontend/__tests__/test/british-english.spec.ts +++ b/frontend/__tests__/test/british-english.spec.ts @@ -63,5 +63,10 @@ describe("british-english", () => { await expect(replace("'hello'", "")).resolves.toEqual("'hello'"); await expect(replace("test", "")).resolves.toEqual("test"); }); + + it("ignores prototype-related property names (e.g. constructor, __proto__)", async () => { + await expect(replace("constructor", "")).resolves.toEqual("constructor"); + await expect(replace("__proto__", "")).resolves.toEqual("__proto__"); + }); }); }); diff --git a/frontend/src/ts/test/british-english.ts b/frontend/src/ts/test/british-english.ts index b97f3fed7..d90449ce4 100644 --- a/frontend/src/ts/test/british-english.ts +++ b/frontend/src/ts/test/british-english.ts @@ -700,6 +700,9 @@ export async function replace( ).join("-"); } else { const cleanedWord = word.replace(/^[\W]+|[\W]+$/g, "").toLowerCase(); + if (!Object.prototype.hasOwnProperty.call(replacementRules, cleanedWord)) { + return word; + } const rule = replacementRules[cleanedWord]; if (rule === undefined) return word;