uint32_t limit;
njs_utf8_t utf8;
njs_array_t *array;
- const u_char *p, *start, *next, *end;
+ const u_char *p, *start, *next, *last, *end;
njs_regexp_utf8_t type;
njs_string_prop_t string, split;
njs_regexp_pattern_t *pattern;
start = string.start;
end = string.start + string.size;
+ last = end - split.size;
do {
- for (p = start; p < end; p++) {
+ for (p = start; p <= last; p++) {
if (memcmp(p, split.start, split.size) == 0) {
- break;
+ goto found;
}
}
+ p = end;
+
+found:
+
next = p + split.size;
/* Empty split string. */
{ nxt_string("'囲α碁α織'.split('α')"),
nxt_string("囲,碁,織") },
+ { nxt_string("'a'.repeat(16).split('a'.repeat(15))"),
+ nxt_string(",a") },
+
{ nxt_string("('α'+'β'.repeat(33)).repeat(2).split('α')[1][32]"),
nxt_string("β") },