]> git.kaiwu.me - njs.git/commitdiff
Fixed String.prototype.match() for byte strings with regex arg.
authorAlexander Borisov <alexander.borisov@nginx.com>
Tue, 16 Jul 2019 14:32:11 +0000 (17:32 +0300)
committerAlexander Borisov <alexander.borisov@nginx.com>
Tue, 16 Jul 2019 14:32:11 +0000 (17:32 +0300)
njs/njs_string.c
njs/test/njs_unit_test.c

index c6190d0b83ce2dbee951c2b831f18b4c04b6f75d..69d2f49246d3d7ea8e48cbfbe82126adc189d503 100644 (file)
@@ -2757,7 +2757,8 @@ njs_string_match_multiple(njs_vm_t *vm, njs_value_t *args,
 
             if (captures[1] == 0) {
                 if (start < end) {
-                    p = nxt_utf8_next(start, end);
+                    p = (utf8 != NJS_STRING_BYTE) ? nxt_utf8_next(start, end)
+                                                  : start + 1;
                     string.size = end - p;
 
                 } else {
index c0ec3804cd45285d443dac03b129944de52022a2..eecb0a242bfb806aca0f577c869a737699aad35c 100644 (file)
@@ -5832,6 +5832,9 @@ static njs_unit_test_t  njs_test[] =
                  "a +' '+ a.length"),
       nxt_string("αα 4") },
 
+    { nxt_string("typeof String.bytesFrom(Array(15).fill(0xE3)).match(/^/g)"),
+      nxt_string("object") },
+
     { nxt_string("'abc'.split()"),
       nxt_string("abc") },