njs_string_prototype_to_lower_case(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused)
{
- size_t size;
+ size_t size, length;
u_char *p, *start;
const u_char *s, *end;
njs_string_prop_t string;
} else {
/* UTF-8 string. */
end = s + size;
+ length = string.length;
- while (size != 0) {
+ while (length != 0) {
p = nxt_utf8_encode(p, nxt_utf8_lower_case(&s, end));
- size--;
+ length--;
}
}
njs_string_prototype_to_upper_case(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused)
{
- size_t size;
+ size_t size, length;
u_char *p, *start;
const u_char *s, *end;
njs_string_prop_t string;
} else {
/* UTF-8 string. */
end = s + size;
+ length = string.length;
- while (size != 0) {
+ while (length != 0) {
p = nxt_utf8_encode(p, nxt_utf8_upper_case(&s, end));
- size--;
+ length--;
}
}
{ nxt_string("'абв абв абвгдежз'.endsWith('абвгд', 14)"),
nxt_string("false") },
- { nxt_string("'ABC'.toLowerCase()"),
- nxt_string("abc") },
+ { nxt_string("'\x00АБВГДЕЁЖЗ'.toLowerCase().length"),
+ nxt_string("10") },
{ nxt_string("'ΑΒΓ'.toLowerCase()"),
nxt_string("αβγ") },
{ nxt_string("'αβγ'.toUpperCase()"),
nxt_string("ΑΒΓ") },
- { nxt_string("'абв'.toUpperCase()"),
- nxt_string("АБВ") },
+ { nxt_string("'\x00абвгдеёжз'.toUpperCase().length"),
+ nxt_string("10") },
{ nxt_string("var a = [], code;"
"for (code = 0; code <= 1114111; code++) {"