Skip to content

Commit 8a276c8

Browse files
committed
deps: backport V8 simdutf utf8 length for two-byte strings
1 parent 69fdff9 commit 8a276c8

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

deps/v8/src/objects/string-inl.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1221,6 +1221,12 @@ size_t String::Utf8Length(Isolate* isolate, DirectHandle<String> string) {
12211221
reinterpret_cast<const char*>(vec.begin()), vec.size());
12221222
}
12231223

1224+
base::Vector<const base::uc16> vec = content.ToUC16Vector();
1225+
const char16_t* data = reinterpret_cast<const char16_t*>(vec.begin());
1226+
if (simdutf::validate_utf16(data, vec.size())) {
1227+
return simdutf::utf8_length_from_utf16(data, vec.size());
1228+
}
1229+
12241230
// TODO(419496232): Use simdutf once upstream bug is resolved.
12251231
size_t utf8_length = 0;
12261232
uint16_t last_character = unibrow::Utf16::kNoPreviousCharacter;

0 commit comments

Comments
 (0)