From b483ca310235aab0b248a7e30b2409a96f82a282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 19 May 2022 21:58:31 +0200 Subject: [PATCH] Correctly complete after opening OR-ed parenthesis The nested call to replace_ending_clause must be pushed in the result instead of concatenated because the clause can be OR-ed. And pslice must remove depth from the length of the sting. issue11477 review421151003 (grafted from b4f0e27a3198630d60b73ee59f0d175f707b3fec) --HG-- branch : 6.0 --- src/common.js | 6 +++--- tests/sao.js | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/common.js b/src/common.js index c4babd9bee..f6973f45fe 100644 --- a/src/common.js +++ b/src/common.js @@ -1282,7 +1282,7 @@ var pslice = function(string, depth) { if (depth > 0) { - return string.substring(0, depth); + return string.substring(0, string.length - depth); } return string; }; @@ -1415,8 +1415,8 @@ results.push(domain[i]); } if (this.is_subdomain(domain[i])) { - results = results.concat(this.replace_ending_clause(domain[i], - clause)); + results.push( + this.replace_ending_clause(domain[i], clause)); } else { results.push(clause); } diff --git a/tests/sao.js b/tests/sao.js index c4e3c5a5ee..a1ec179f4c 100644 --- a/tests/sao.js +++ b/tests/sao.js @@ -2993,6 +2993,7 @@ ['', ["Name: "]], [' ', ["", "Name: "]], ["Name: foo or", ["Name: foo"]], + ['Name: foo (Name: foo or N', ["Name: foo (Name: foo or Name: "]], ].forEach(function(test) { var value = test[0]; var expected = test[1];