regexp: fixed the zero advance logic in quantifiers (github issue #158)

This commit is contained in:
Fabrice Bellard
2024-01-10 14:36:19 +01:00
parent f25e5d4094
commit 10fc744ae4
4 changed files with 53 additions and 77 deletions

View File

@@ -538,7 +538,17 @@ function test_regexp()
assert(/{1a}/.toString(), "/{1a}/");
a = /a{1+/.exec("a{11");
assert(a, ["a{11"] );
assert(a, ["a{11"]);
/* test zero length matches */
a = /(?:(?=(abc)))a/.exec("abc");
assert(a, ["a", "abc"]);
a = /(?:(?=(abc)))?a/.exec("abc");
assert(a, ["a", undefined]);
a = /(?:(?=(abc))){0,2}a/.exec("abc");
assert(a, ["a", undefined]);
a = /(?:|[\w])+([0-9])/.exec("123a23");
assert(a, ["123a23", "3"]);
}
function test_symbol()