diff --git a/common.gypi b/common.gypi index d3c17d47bc141b..5ac35b26b79744 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,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.26', + 'v8_embedder_string': '-node.29', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/AUTHORS b/deps/v8/AUTHORS index 7b43882edca7ea..eeac21260b74dd 100644 --- a/deps/v8/AUTHORS +++ b/deps/v8/AUTHORS @@ -188,6 +188,7 @@ Matt Hanselman Matthew Sporleder Maxim Mazurok Maxim Mossienko +Meir Shpilraien Michael Lutz Michael Mclaughlin Michael Smith diff --git a/deps/v8/src/inspector/string-16.cc b/deps/v8/src/inspector/string-16.cc index a8b786a8166d54..6df9963e970e51 100644 --- a/deps/v8/src/inspector/string-16.cc +++ b/deps/v8/src/inspector/string-16.cc @@ -27,7 +27,7 @@ bool isSpaceOrNewLine(UChar c) { return isASCII(c) && c <= ' ' && (c == ' ' || (c <= 0xD && c >= 0x9)); } -int64_t charactersToInteger(const UChar* characters, size_t length, +int64_t charactersToInteger(const uint16_t* characters, size_t length, bool* ok = nullptr) { std::vector buffer; buffer.reserve(length + 1); @@ -50,6 +50,8 @@ int64_t charactersToInteger(const UChar* characters, size_t length, String16::String16(const UChar* characters, size_t size) : m_impl(characters, size) {} +String16::String16(const uint16_t* characters, size_t size) + : m_impl(reinterpret_cast(characters), size) {} String16::String16(const UChar* characters) : m_impl(characters) {} @@ -241,6 +243,10 @@ String16 String16::fromUTF16LE(const UChar* stringStart, size_t length) { #endif // V8_TARGET_BIG_ENDIAN } +String16 String16::fromUTF16LE(const uint16_t* stringStart, size_t length) { + return fromUTF16LE(reinterpret_cast(stringStart), length); +} + std::string String16::utf8() const { return UTF16ToUTF8(m_impl.data(), m_impl.size()); } diff --git a/deps/v8/src/inspector/string-16.h b/deps/v8/src/inspector/string-16.h index 29651ac9592922..feb091433b9687 100644 --- a/deps/v8/src/inspector/string-16.h +++ b/deps/v8/src/inspector/string-16.h @@ -17,7 +17,7 @@ namespace v8_inspector { -using UChar = uint16_t; +using UChar = char16_t; class String16 { public: @@ -27,6 +27,7 @@ class String16 { String16(const String16&) V8_NOEXCEPT = default; String16(String16&&) V8_NOEXCEPT = default; String16(const UChar* characters, size_t size); + String16(const uint16_t* characters, size_t size); V8_EXPORT String16(const UChar* characters); V8_EXPORT String16(const char* characters); String16(const char* characters, size_t size); @@ -48,7 +49,9 @@ class String16 { int toInteger(bool* ok = nullptr) const; std::pair getTrimmedOffsetAndLength() const; String16 stripWhiteSpace() const; - const UChar* characters16() const { return m_impl.c_str(); } + const uint16_t* characters16() const { + return reinterpret_cast(m_impl.c_str()); + } size_t length() const { return m_impl.length(); } bool isEmpty() const { return !m_impl.length(); } UChar operator[](size_t index) const { return m_impl[index]; } @@ -78,6 +81,8 @@ class String16 { // On Big endian architectures, byte order needs to be flipped. V8_EXPORT static String16 fromUTF16LE(const UChar* stringStart, size_t length); + V8_EXPORT static String16 fromUTF16LE(const uint16_t* stringStart, + size_t length); std::size_t hash() const { if (!hash_code) { diff --git a/deps/v8/src/inspector/v8-string-conversions.cc b/deps/v8/src/inspector/v8-string-conversions.cc index 0c75e66b972274..8cf19be816c240 100644 --- a/deps/v8/src/inspector/v8-string-conversions.cc +++ b/deps/v8/src/inspector/v8-string-conversions.cc @@ -12,7 +12,7 @@ namespace v8_inspector { namespace { -using UChar = uint16_t; +using UChar = char16_t; using UChar32 = uint32_t; bool isASCII(UChar c) { return !(c & ~0x7F); } @@ -386,7 +386,7 @@ std::string UTF16ToUTF8(const UChar* stringStart, size_t length) { std::basic_string UTF8ToUTF16(const char* stringStart, size_t length) { if (!stringStart || !length) return std::basic_string(); - std::vector buffer(length); + std::vector buffer(length); UChar* bufferStart = buffer.data(); UChar* bufferCurrent = bufferStart; @@ -395,7 +395,7 @@ std::basic_string UTF8ToUTF16(const char* stringStart, size_t length) { reinterpret_cast(stringStart + length), &bufferCurrent, bufferCurrent + buffer.size(), nullptr, true) != conversionOK) - return std::basic_string(); + return std::basic_string(); size_t utf16Length = bufferCurrent - bufferStart; return std::basic_string(bufferStart, bufferStart + utf16Length); } diff --git a/deps/v8/src/inspector/v8-string-conversions.h b/deps/v8/src/inspector/v8-string-conversions.h index eb33c6816a5882..0f674f0bc81947 100644 --- a/deps/v8/src/inspector/v8-string-conversions.h +++ b/deps/v8/src/inspector/v8-string-conversions.h @@ -5,14 +5,15 @@ #ifndef V8_INSPECTOR_V8_STRING_CONVERSIONS_H_ #define V8_INSPECTOR_V8_STRING_CONVERSIONS_H_ + #include #include // Conversion routines between UT8 and UTF16, used by string-16.{h,cc}. You may // want to use string-16.h directly rather than these. namespace v8_inspector { -std::basic_string UTF8ToUTF16(const char* stringStart, size_t length); -std::string UTF16ToUTF8(const uint16_t* stringStart, size_t length); +std::basic_string UTF8ToUTF16(const char* stringStart, size_t length); +std::string UTF16ToUTF8(const char16_t* stringStart, size_t length); } // namespace v8_inspector #endif // V8_INSPECTOR_V8_STRING_CONVERSIONS_H_ diff --git a/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc b/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc index c9d89eaa42f1d8..1a46d781b89d47 100644 --- a/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc +++ b/deps/v8/third_party/inspector_protocol/crdtp/test_platform_v8.cc @@ -11,13 +11,16 @@ namespace v8_crdtp { std::string UTF16ToUTF8(span in) { - return v8_inspector::UTF16ToUTF8(in.data(), in.size()); + return v8_inspector::UTF16ToUTF8(reinterpret_cast(in.data()), + in.size()); } std::vector UTF8ToUTF16(span in) { - std::basic_string utf16 = v8_inspector::UTF8ToUTF16( + std::basic_string utf16 = v8_inspector::UTF8ToUTF16( reinterpret_cast(in.data()), in.size()); - return std::vector(utf16.begin(), utf16.end()); + return std::vector( + reinterpret_cast(utf16.data()), + reinterpret_cast(utf16.data()) + utf16.size()); } } // namespace v8_crdtp diff --git a/deps/v8/third_party/zlib/zutil.h b/deps/v8/third_party/zlib/zutil.h index e0466922244edc..a3f671c94f8fd2 100644 --- a/deps/v8/third_party/zlib/zutil.h +++ b/deps/v8/third_party/zlib/zutil.h @@ -152,17 +152,8 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ # endif #endif -#if defined(MACOS) || defined(TARGET_OS_MAC) +#if defined(MACOS) # define OS_CODE 7 -# ifndef Z_SOLO -# if defined(__MWERKS__) && __dest_os != __be_os && __dest_os != __win32_os -# include /* for fdopen */ -# else -# ifndef fdopen -# define fdopen(fd,mode) NULL /* No fdopen() */ -# endif -# endif -# endif #endif #ifdef __acorn @@ -185,18 +176,6 @@ extern z_const char * const z_errmsg[10]; /* indexed by 2-zlib_error */ # define OS_CODE 19 #endif -#if defined(_BEOS_) || defined(RISCOS) -# define fdopen(fd,mode) NULL /* No fdopen() */ -#endif - -#if (defined(_MSC_VER) && (_MSC_VER > 600)) && !defined __INTERIX -# if defined(_WIN32_WCE) -# define fdopen(fd,mode) NULL /* No fdopen() */ -# else -# define fdopen(fd,type) _fdopen(fd,type) -# endif -#endif - #if defined(__BORLANDC__) && !defined(MSDOS) #pragma warn -8004 #pragma warn -8008