From: Alexander Borisov Date: Tue, 16 Jul 2019 14:32:12 +0000 (+0300) Subject: Fixed String.prototype.substring() with empty substring. X-Git-Url: http://git.kaiwu.me/sitemap.xml?a=commitdiff_plain;h=aa41d4cdd90259ea3eb0216d3ff5dc2853d304b4;p=njs.git Fixed String.prototype.substring() with empty substring. --- diff --git a/njs/njs_string.c b/njs/njs_string.c index e4ddd128..f2b65740 100644 --- a/njs/njs_string.c +++ b/njs/njs_string.c @@ -1357,10 +1357,10 @@ njs_string_slice_string_prop(njs_string_prop_t *dst, p = start; n = length; - do { + while (n != 0 && p < end) { p = nxt_utf8_next(p, end); n--; - } while (n != 0 && p < end); + } size = p - start; length -= n; diff --git a/njs/test/njs_unit_test.c b/njs/test/njs_unit_test.c index 860ab5a9..94be56d7 100644 --- a/njs/test/njs_unit_test.c +++ b/njs/test/njs_unit_test.c @@ -4822,6 +4822,9 @@ static njs_unit_test_t njs_test[] = { nxt_string("'abcdefgh'.substring(100, 120)"), nxt_string("") }, + { nxt_string("'α'.repeat(32).substring(32)"), + nxt_string("") }, + { nxt_string("'abcdefghijklmno'.slice(NaN, 5)"), nxt_string("abcde") },