{
size_t size;
u_char *dst;
- uint32_t n, len;
+ uint32_t n;
njs_ret_t ret;
njs_array_t *array;
njs_value_t *value, name;
if (string.length == 0) {
/* Byte string. */
- len = 0;
+ do {
+ value = &array->start[n++];
+ dst = njs_string_short_start(value);
+ *dst = *src++;
+ njs_string_short_set(value, 1, 0);
+
+ length--;
+ } while (length != 0);
} else {
/* UTF-8 or ASCII string. */
- len = 1;
+ do {
+ value = &array->start[n++];
+ dst = njs_string_short_start(value);
+ dst = nxt_utf8_copy(dst, &src, end);
+ size = dst - njs_string_short_start(value);
+ njs_string_short_set(value, size, 1);
+
+ length--;
+ } while (length != 0);
}
- do {
- value = &array->start[n++];
- dst = njs_string_short_start(value);
- dst = nxt_utf8_copy(dst, &src, end);
- size = dst - njs_string_short_start(value);
- njs_string_short_set(value, size, len);
-
- length--;
- } while (length != 0);
-
} else if (njs_is_object(this)) {
do {
{ nxt_string("Array.prototype.slice.call('αβZγ')"),
nxt_string("α,β,Z,γ") },
+ { nxt_string("Array.prototype.slice.call(String.bytesFrom(Array(16).fill(0x9d)))[0].charCodeAt(0)"),
+ nxt_string("157") },
+
{ nxt_string("Array.prototype.slice.call('αβZγ', 1)"),
nxt_string("β,Z,γ") },