From da3459b14eccbde898b40c0e7f2a4b62b631ab13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Sat, 1 Jun 2019 20:59:31 +0200 Subject: [PATCH] deps: patch V8 to be API/ABI compatible with 7.4 (from 7.5) Reverts https://github.com/v8/v8/commit/1b51dca30d697a448f70fdf3e11c8491b122f4ee Reverts https://github.com/v8/v8/commit/1ab717db8495b4ad40d2754dd0ba2b339c9c80a4 Partially reverts https://github.com/v8/v8/commit/b0077b3b50e551a10d8ef4fabfe18f9005494b5a Backport-PR-URL: https://github.com/nodejs/node/pull/30109 Backport-PR-URL: https://github.com/nodejs/node/pull/29241 Backport-PR-URL: https://github.com/nodejs/node/pull/28955 PR-URL: https://github.com/nodejs/node/pull/28005 Reviewed-By: Anna Henningsen Reviewed-By: Ujjwal Sharma --- common.gypi | 2 +- deps/v8/include/v8.h | 19 ++++++------------- deps/v8/src/api/api.cc | 17 +++++++---------- deps/v8/src/execution/microtask-queue.cc | 4 ---- deps/v8/src/execution/microtask-queue.h | 2 +- 5 files changed, 15 insertions(+), 29 deletions(-) diff --git a/common.gypi b/common.gypi index a7b37e6656b949..28c63873d95543 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.17', + 'v8_embedder_string': '-node.18', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 735701d232b096..7b8f9521e42490 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -5218,7 +5218,8 @@ class V8_EXPORT SharedArrayBuffer : public Object { allocation_length_(0), allocation_mode_(Allocator::AllocationMode::kNormal), deleter_(nullptr), - deleter_data_(nullptr) {} + deleter_data_(nullptr), + is_growable_(false) {} void* AllocationBase() const { return allocation_base_; } size_t AllocationLength() const { return allocation_length_; } @@ -5230,12 +5231,13 @@ class V8_EXPORT SharedArrayBuffer : public Object { size_t ByteLength() const { return byte_length_; } DeleterCallback Deleter() const { return deleter_; } void* DeleterData() const { return deleter_data_; } + bool IsGrowable() const { return is_growable_; } private: Contents(void* data, size_t byte_length, void* allocation_base, size_t allocation_length, Allocator::AllocationMode allocation_mode, DeleterCallback deleter, - void* deleter_data); + void* deleter_data, bool is_growable); void* data_; size_t byte_length_; @@ -5244,6 +5246,7 @@ class V8_EXPORT SharedArrayBuffer : public Object { Allocator::AllocationMode allocation_mode_; DeleterCallback deleter_; void* deleter_data_; + bool is_growable_; friend class SharedArrayBuffer; }; @@ -6900,8 +6903,7 @@ class V8_EXPORT MicrotaskQueue { /** * Creates an empty MicrotaskQueue instance. */ - static std::unique_ptr New( - Isolate* isolate, MicrotasksPolicy policy = MicrotasksPolicy::kAuto); + static std::unique_ptr New(Isolate* isolate); virtual ~MicrotaskQueue() = default; @@ -6949,15 +6951,6 @@ class V8_EXPORT MicrotaskQueue { */ virtual bool IsRunningMicrotasks() const = 0; - /** - * Returns the current depth of nested MicrotasksScope that has - * kRunMicrotasks. - */ - virtual int GetMicrotasksScopeDepth() const = 0; - - MicrotaskQueue(const MicrotaskQueue&) = delete; - MicrotaskQueue& operator=(const MicrotaskQueue&) = delete; - private: friend class internal::MicrotaskQueue; MicrotaskQueue() = default; diff --git a/deps/v8/src/api/api.cc b/deps/v8/src/api/api.cc index 2f117f3568521a..ae0cf0c5b5216b 100644 --- a/deps/v8/src/api/api.cc +++ b/deps/v8/src/api/api.cc @@ -7471,14 +7471,15 @@ v8::SharedArrayBuffer::Contents v8::SharedArrayBuffer::Externalize() { v8::SharedArrayBuffer::Contents::Contents( void* data, size_t byte_length, void* allocation_base, size_t allocation_length, Allocator::AllocationMode allocation_mode, - DeleterCallback deleter, void* deleter_data) + DeleterCallback deleter, void* deleter_data, bool is_growable) : data_(data), byte_length_(byte_length), allocation_base_(allocation_base), allocation_length_(allocation_length), allocation_mode_(allocation_mode), deleter_(deleter), - deleter_data_(deleter_data) { + deleter_data_(deleter_data), + is_growable_(is_growable) { DCHECK_LE(allocation_base_, data_); DCHECK_LE(byte_length_, allocation_length_); } @@ -7496,7 +7497,8 @@ v8::SharedArrayBuffer::Contents v8::SharedArrayBuffer::GetContents() { : reinterpret_cast(ArrayBufferDeleter), self->is_wasm_memory() ? static_cast(self->GetIsolate()->wasm_engine()) - : static_cast(self->GetIsolate()->array_buffer_allocator())); + : static_cast(self->GetIsolate()->array_buffer_allocator()), + false); return contents; } @@ -8673,13 +8675,8 @@ void v8::Isolate::LocaleConfigurationChangeNotification() { } // static -std::unique_ptr MicrotaskQueue::New(Isolate* isolate, - MicrotasksPolicy policy) { - auto microtask_queue = - i::MicrotaskQueue::New(reinterpret_cast(isolate)); - microtask_queue->set_microtasks_policy(policy); - std::unique_ptr ret(std::move(microtask_queue)); - return ret; +std::unique_ptr MicrotaskQueue::New(Isolate* isolate) { + return i::MicrotaskQueue::New(reinterpret_cast(isolate)); } MicrotasksScope::MicrotasksScope(Isolate* isolate, MicrotasksScope::Type type) diff --git a/deps/v8/src/execution/microtask-queue.cc b/deps/v8/src/execution/microtask-queue.cc index ed76e9d79c50c6..86ffbecc8b6328 100644 --- a/deps/v8/src/execution/microtask-queue.cc +++ b/deps/v8/src/execution/microtask-queue.cc @@ -214,10 +214,6 @@ void MicrotaskQueue::IterateMicrotasks(RootVisitor* visitor) { } } -int MicrotaskQueue::GetMicrotasksScopeDepth() const { - return microtasks_depth_; -} - void MicrotaskQueue::AddMicrotasksCompletedCallback( MicrotasksCompletedCallbackWithData callback, void* data) { CallbackWithData callback_with_data(callback, data); diff --git a/deps/v8/src/execution/microtask-queue.h b/deps/v8/src/execution/microtask-queue.h index 4ce1498279c1a6..070668fb4723c9 100644 --- a/deps/v8/src/execution/microtask-queue.h +++ b/deps/v8/src/execution/microtask-queue.h @@ -62,7 +62,7 @@ class V8_EXPORT_PRIVATE MicrotaskQueue final : public v8::MicrotaskQueue { // invocation, which happens when depth reaches zero. void IncrementMicrotasksScopeDepth() { ++microtasks_depth_; } void DecrementMicrotasksScopeDepth() { --microtasks_depth_; } - int GetMicrotasksScopeDepth() const override; + int GetMicrotasksScopeDepth() const { return microtasks_depth_; } // Possibly nested microtasks suppression scopes prevent microtasks // from running.