diff --git a/common.gypi b/common.gypi index c58aa7fd89305d..e487df802ed108 100644 --- a/common.gypi +++ b/common.gypi @@ -38,7 +38,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.13', + 'v8_embedder_string': '-node.14', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/objects/string-inl.h b/deps/v8/src/objects/string-inl.h index e80cec42c33bd2..c42e53f94db068 100644 --- a/deps/v8/src/objects/string-inl.h +++ b/deps/v8/src/objects/string-inl.h @@ -1221,6 +1221,12 @@ size_t String::Utf8Length(Isolate* isolate, DirectHandle string) { reinterpret_cast(vec.begin()), vec.size()); } + base::Vector vec = content.ToUC16Vector(); + const char16_t* data = reinterpret_cast(vec.begin()); + if (simdutf::validate_utf16(data, vec.size())) { + return simdutf::utf8_length_from_utf16(data, vec.size()); + } + // TODO(419496232): Use simdutf once upstream bug is resolved. size_t utf8_length = 0; uint16_t last_character = unibrow::Utf16::kNoPreviousCharacter;