details: https://hg.nginx.org/njs/rev/c16f64d334f2 branches: changeset: 2217:c16f64d334f2 user: Dmitry Volyntsev <xei...@nginx.com> date: Fri Oct 06 16:49:59 2023 -0700 description: Fixed RegExp.prototype.split().
The issue was introduced in c0aad58cfadb. diffstat: src/njs_regexp.c | 15 +++++++++------ src/test/njs_unit_test.c | 3 +++ 2 files changed, 12 insertions(+), 6 deletions(-) diffs (48 lines): diff -r 632002c161b1 -r c16f64d334f2 src/njs_regexp.c --- a/src/njs_regexp.c Wed Oct 04 15:00:02 2023 -0700 +++ b/src/njs_regexp.c Fri Oct 06 16:49:59 2023 -0700 @@ -1625,7 +1625,7 @@ njs_regexp_prototype_symbol_split(njs_vm njs_value_t r, z, this, s_lvalue, setval, constructor; njs_object_t *object; const u_char *start, *end; - njs_string_prop_t s; + njs_string_prop_t s, sv; njs_value_t arguments[2]; static const njs_value_t string_lindex = njs_string("lastIndex"); @@ -1815,14 +1815,17 @@ njs_regexp_prototype_symbol_split(njs_vm ncaptures = njs_max(ncaptures - 1, 0); for (i = 1; i <= ncaptures; i++) { - value = njs_array_push(vm, array); - if (njs_slow_path(value == NULL)) { + ret = njs_value_property_i64(vm, &z, i, retval); + if (njs_slow_path(ret == NJS_ERROR)) { return NJS_ERROR; } - ret = njs_value_property_i64(vm, &z, i, value); - if (njs_slow_path(ret == NJS_ERROR)) { - return NJS_ERROR; + (void) njs_string_prop(&sv, retval); + + ret = njs_array_string_add(vm, array, sv.start, sv.size, + sv.length); + if (njs_slow_path(ret != NJS_OK)) { + return ret; } if (array->length == limit) { diff -r 632002c161b1 -r c16f64d334f2 src/test/njs_unit_test.c --- a/src/test/njs_unit_test.c Wed Oct 04 15:00:02 2023 -0700 +++ b/src/test/njs_unit_test.c Fri Oct 06 16:49:59 2023 -0700 @@ -9734,6 +9734,9 @@ static njs_unit_test_t njs_test[] = { njs_str("'мояВерблюжьяСтрока'.split(/(?=[А-Я])/)"), njs_str("моя,Верблюжья,Строка") }, + { njs_str("`aaaaaaaaaaaaaaaaa`.split(/(.*)/)"), + njs_str(",aaaaaaaaaaaaaaaaa,") }, + { njs_str("'Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ;Chris Hand '.split( /\\s*(?:;|$)\\s*/)"), njs_str("Harry Trump,Fred Barney,Helen Rigby,Bill Abel,Chris Hand,") }, _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-devel