diff --git a/common.gypi b/common.gypi index 23ac7205baa..bb089b6527d 100644 --- a/common.gypi +++ b/common.gypi @@ -37,7 +37,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/include/v8-internal.h b/deps/v8/include/v8-internal.h index 5cc62f3e726..a0d0bfb959c 100644 --- a/deps/v8/include/v8-internal.h +++ b/deps/v8/include/v8-internal.h @@ -164,7 +164,6 @@ class Internals { static const int kNodeStateMask = 0x7; static const int kNodeStateIsWeakValue = 2; static const int kNodeStateIsPendingValue = 3; - static const int kNodeStateIsNearDeathValue = 4; static const int kNodeIsIndependentShift = 3; static const int kNodeIsActiveShift = 4; diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 5635bd21b10..8bb2990c494 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -576,10 +576,6 @@ template class PersistentBase { V8_DEPRECATED("See MarkIndependent.", V8_INLINE bool IsIndependent() const); - /** Checks if the handle holds the only reference to an object. */ - V8_DEPRECATED("Garbage collection internal state should not be relied on.", - V8_INLINE bool IsNearDeath() const); - /** Returns true if the handle's reference is weak. */ V8_INLINE bool IsWeak() const; @@ -8519,17 +8515,6 @@ class V8_EXPORT Isolate { */ void VisitHandlesWithClassIds(PersistentHandleVisitor* visitor); - /** - * Iterates through all the persistent handles in the current isolate's heap - * that have class_ids and are candidates to be marked as partially dependent - * handles. This will visit handles to young objects created since the last - * garbage collection but is free to visit an arbitrary superset of these - * objects. - */ - V8_DEPRECATED( - "Use VisitHandlesWithClassIds", - void VisitHandlesForPartialDependence(PersistentHandleVisitor* visitor)); - /** * Iterates through all the persistent handles in the current isolate's heap * that have class_ids and are weak to be marked as inactive if there is no @@ -9783,17 +9768,6 @@ bool PersistentBase::IsIndependent() const { I::kNodeIsIndependentShift); } -template -bool PersistentBase::IsNearDeath() const { - typedef internal::Internals I; - if (this->IsEmpty()) return false; - uint8_t node_state = - I::GetNodeState(reinterpret_cast(this->val_)); - return node_state == I::kNodeStateIsNearDeathValue || - node_state == I::kNodeStateIsPendingValue; -} - - template bool PersistentBase::IsWeak() const { typedef internal::Internals I; diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 360bb784075..eae3fd27921 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -8876,15 +8876,6 @@ void Isolate::VisitHandlesWithClassIds(PersistentHandleVisitor* visitor) { isolate->global_handles()->IterateAllRootsWithClassIds(visitor); } - -void Isolate::VisitHandlesForPartialDependence( - PersistentHandleVisitor* visitor) { - i::Isolate* isolate = reinterpret_cast(this); - i::DisallowHeapAllocation no_allocation; - isolate->global_handles()->IterateAllYoungRootsWithClassIds(visitor); -} - - void Isolate::VisitWeakHandles(PersistentHandleVisitor* visitor) { i::Isolate* isolate = reinterpret_cast(this); i::DisallowHeapAllocation no_allocation; diff --git a/deps/v8/src/global-handles.cc b/deps/v8/src/global-handles.cc index 5eb3d93f142..350380b23ce 100644 --- a/deps/v8/src/global-handles.cc +++ b/deps/v8/src/global-handles.cc @@ -379,7 +379,6 @@ class GlobalHandles::Node final : public NodeBase { Internals::kNodeStateMask); STATIC_ASSERT(WEAK == Internals::kNodeStateIsWeakValue); STATIC_ASSERT(PENDING == Internals::kNodeStateIsPendingValue); - STATIC_ASSERT(NEAR_DEATH == Internals::kNodeStateIsNearDeathValue); STATIC_ASSERT(static_cast(IsIndependent::kShift) == Internals::kNodeIsIndependentShift); STATIC_ASSERT(static_cast(IsActive::kShift) == @@ -427,11 +426,6 @@ class GlobalHandles::Node final : public NodeBase { flags_ = NodeWeaknessType::update(flags_, weakness_type); } - bool IsNearDeath() const { - // Check for PENDING to ensure correct answer when processing callbacks. - return state() == PENDING || state() == NEAR_DEATH; - } - bool IsWeak() const { return state() == WEAK; } bool IsInUse() const { return state() != FREE; } @@ -819,10 +813,6 @@ void GlobalHandles::AnnotateStrongRetainer(Address* location, Node::FromLocation(location)->AnnotateStrongRetainer(label); } -bool GlobalHandles::IsNearDeath(Address* location) { - return Node::FromLocation(location)->IsNearDeath(); -} - bool GlobalHandles::IsWeak(Address* location) { return Node::FromLocation(location)->IsWeak(); } diff --git a/deps/v8/src/global-handles.h b/deps/v8/src/global-handles.h index 3604af1d28e..8caa3c33ce7 100644 --- a/deps/v8/src/global-handles.h +++ b/deps/v8/src/global-handles.h @@ -73,9 +73,6 @@ class GlobalHandles final { // Clear the weakness of a global handle. static void* ClearWeakness(Address* location); - // Tells whether global handle is near death. - static bool IsNearDeath(Address* location); - // Tells whether global handle is weak. static bool IsWeak(Address* location); diff --git a/deps/v8/test/cctest/heap/test-heap.cc b/deps/v8/test/cctest/heap/test-heap.cc index f12ba109795..1d06f460869 100644 --- a/deps/v8/test/cctest/heap/test-heap.cc +++ b/deps/v8/test/cctest/heap/test-heap.cc @@ -531,14 +531,9 @@ TEST(WeakGlobalHandlesScavenge) { // Scavenge treats weak pointers as normal roots. CcTest::CollectGarbage(NEW_SPACE); - CHECK((*h1)->IsString()); CHECK((*h2)->IsHeapNumber()); - CHECK(!WeakPointerCleared); - CHECK(!global_handles->IsNearDeath(h2.location())); - CHECK(!global_handles->IsNearDeath(h1.location())); - GlobalHandles::Destroy(h1.location()); GlobalHandles::Destroy(h2.location()); } @@ -576,11 +571,8 @@ TEST(WeakGlobalUnmodifiedApiHandlesScavenge) { &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); CcTest::CollectGarbage(NEW_SPACE); - CHECK((*h1)->IsHeapNumber()); CHECK(WeakPointerCleared); - CHECK(!global_handles->IsNearDeath(h1.location())); - GlobalHandles::Destroy(h1.location()); } @@ -617,10 +609,7 @@ TEST(WeakGlobalApiHandleModifiedMapScavenge) { &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); CcTest::CollectGarbage(NEW_SPACE); - CHECK(!WeakPointerCleared); - CHECK(!global_handles->IsNearDeath(h1.location())); - GlobalHandles::Destroy(h1.location()); } @@ -661,10 +650,7 @@ TEST(WeakGlobalApiHandleWithElementsScavenge) { &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); CcTest::CollectGarbage(NEW_SPACE); - CHECK(!WeakPointerCleared); - CHECK(!global_handles->IsNearDeath(h1.location())); - GlobalHandles::Destroy(h1.location()); } @@ -699,17 +685,11 @@ TEST(WeakGlobalHandlesMark) { GlobalHandles::MakeWeak( h2.location(), reinterpret_cast(&handle_and_id), &TestWeakGlobalHandleCallback, v8::WeakCallbackType::kParameter); - CHECK(!GlobalHandles::IsNearDeath(h1.location())); - CHECK(!GlobalHandles::IsNearDeath(h2.location())); // Incremental marking potentially marked handles before they turned weak. CcTest::CollectAllGarbage(); - CHECK((*h1)->IsString()); - CHECK(WeakPointerCleared); - CHECK(!GlobalHandles::IsNearDeath(h1.location())); - GlobalHandles::Destroy(h1.location()); } diff --git a/deps/v8/test/cctest/test-api.cc b/deps/v8/test/cctest/test-api.cc index aae1b3674e5..2edc5b50029 100644 --- a/deps/v8/test/cctest/test-api.cc +++ b/deps/v8/test/cctest/test-api.cc @@ -20545,43 +20545,6 @@ TEST(WrapperClassId) { object.Reset(); } - -TEST(PersistentHandleInNewSpaceVisitor) { - LocalContext context; - v8::Isolate* isolate = context->GetIsolate(); - v8::HandleScope scope(isolate); - v8::Persistent object1(isolate, v8::Object::New(isolate)); - CHECK_EQ(0, object1.WrapperClassId()); - object1.SetWrapperClassId(42); - CHECK_EQ(42, object1.WrapperClassId()); - - CcTest::CollectAllGarbage(); - CcTest::CollectAllGarbage(); - - v8::Persistent object2(isolate, v8::Object::New(isolate)); - CHECK_EQ(0, object2.WrapperClassId()); - object2.SetWrapperClassId(42); - CHECK_EQ(42, object2.WrapperClassId()); - - Visitor42 visitor(&object2); -#if __clang__ -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated" -#endif - // VisitHandlesForPartialDependence is marked deprecated. This test will be - // removed with the API method. - isolate->VisitHandlesForPartialDependence(&visitor); -#if __clang__ -#pragma clang diagnostic pop -#endif - - CHECK_EQ(1, visitor.counter_); - - object1.Reset(); - object2.Reset(); -} - - TEST(RegExp) { LocalContext context; v8::HandleScope scope(context->GetIsolate());