diff --git a/src/node_buffer.h b/src/node_buffer.h index 606a6f5caa3b11..2a800600380c6c 100644 --- a/src/node_buffer.h +++ b/src/node_buffer.h @@ -29,7 +29,9 @@ namespace node { namespace Buffer { -static const size_t kMaxLength = v8::TypedArray::kMaxLength; +static constexpr size_t kMaxLength = + v8::Uint8Array::kMaxLength < 0x10000000000ull ? v8::Uint8Array::kMaxLength + : 0x10000000000ull; typedef void (*FreeCallback)(char* data, void* hint); diff --git a/src/node_errors.h b/src/node_errors.h index 569dafe82df83d..7a9778f5f00567 100644 --- a/src/node_errors.h +++ b/src/node_errors.h @@ -5,6 +5,7 @@ #include "debug_utils-inl.h" #include "env.h" +#include "node_buffer.h" #include "v8.h" // Use ostringstream to print exact-width integer types @@ -216,9 +217,10 @@ inline void THROW_ERR_SCRIPT_EXECUTION_TIMEOUT(Environment* env, inline v8::Local ERR_BUFFER_TOO_LARGE(v8::Isolate* isolate) { char message[128]; - snprintf(message, sizeof(message), - "Cannot create a Buffer larger than 0x%zx bytes", - v8::TypedArray::kMaxLength); + snprintf(message, + sizeof(message), + "Cannot create a Buffer larger than 0x%zx bytes", + Buffer::kMaxLength); return ERR_BUFFER_TOO_LARGE(isolate, message); }