mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
src: use simdutf for one-byte string UTF-8 write in stringBytes
PR-URL: https://github.com/nodejs/node/pull/61696 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Stephen Belanger <admin@stephenbelanger.com> Reviewed-By: Daniel Lemire <daniel@lemire.me> Reviewed-By: Vinícius Lourenço Claro Cardoso <contact@viniciusl.com.br> Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com> Reviewed-By: Gürgün Dayıoğlu <hey@gurgun.day> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: René <contact.9a5d6388@renegade334.me.uk>
This commit is contained in:
1 parent
346ad95c3c
commit
28979fb595
1 file changed
+11
-2
+11
-2
@@ -266,8 +266,17 @@ size_t StringBytes::Write(Isolate* isolate,
|
||||
|
||||
case BUFFER:
|
||||
case UTF8:
|
||||
nbytes = str->WriteUtf8V2(
|
||||
isolate, buf, buflen, String::WriteFlags::kReplaceInvalidUtf8);
|
||||
if (input_view.is_one_byte()) {
|
||||
// Use simdutf for one-byte strings instead of V8's WriteUtf8V2.
|
||||
nbytes = simdutf::convert_latin1_to_utf8_safe(
|
||||
reinterpret_cast<const char*>(input_view.data8()),
|
||||
input_view.length(),
|
||||
buf,
|
||||
buflen);
|
||||
} else {
|
||||
nbytes = str->WriteUtf8V2(
|
||||
isolate, buf, buflen, String::WriteFlags::kReplaceInvalidUtf8);
|
||||
}
|
||||
break;
|
||||
|
||||
case UCS2: {
|
||||
|
||||
Reference in new issue
Block a user