diff --git a/common.gypi b/common.gypi index 16165ed5c90168..7a461f7cf6ca6c 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.19', + 'v8_embedder_string': '-node.20', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/heap/heap.h b/deps/v8/src/heap/heap.h index 18064ac73132c4..70e2e14993c4a7 100644 --- a/deps/v8/src/heap/heap.h +++ b/deps/v8/src/heap/heap.h @@ -2610,10 +2610,7 @@ class StrongRootBlockAllocator { using size_type = size_t; using difference_type = ptrdiff_t; template - struct rebind { - STATIC_ASSERT((std::is_same::value)); - using other = StrongRootBlockAllocator; - }; + struct rebind; explicit StrongRootBlockAllocator(Heap* heap) : heap_(heap) {} @@ -2624,6 +2621,23 @@ class StrongRootBlockAllocator { Heap* heap_; }; +// Rebinding to Address gives another StrongRootBlockAllocator. +template <> +struct StrongRootBlockAllocator::rebind
{ + using other = StrongRootBlockAllocator; +}; + +// Rebinding to something other than Address gives a std::allocator that +// is copy-constructable from StrongRootBlockAllocator. +template +struct StrongRootBlockAllocator::rebind { + class other : public std::allocator { + public: + // NOLINTNEXTLINE + other(const StrongRootBlockAllocator&) {} + }; +}; + } // namespace internal } // namespace v8