From c5ff019a4e93891106859cb272ded1197a92c7e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Wed, 24 Feb 2021 14:47:06 +0100 Subject: deps: update V8 to 8.9.255.19 PR-URL: https://github.com/nodejs/node/pull/37330 Reviewed-By: Jiawen Geng Reviewed-By: Colin Ihrig Reviewed-By: Rich Trott --- deps/v8/src/objects/map-updater.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'deps/v8/src/objects/map-updater.cc') diff --git a/deps/v8/src/objects/map-updater.cc b/deps/v8/src/objects/map-updater.cc index 36d5da85e8..0e0c3372cd 100644 --- a/deps/v8/src/objects/map-updater.cc +++ b/deps/v8/src/objects/map-updater.cc @@ -217,6 +217,14 @@ MapUpdater::State MapUpdater::TryReconfigureToDataFieldInplace() { PropertyDetails old_details = old_descriptors_->GetDetails(modified_descriptor_); + + if (old_details.attributes() != new_attributes_ || + old_details.kind() != new_kind_ || + old_details.location() != new_location_) { + // These changes can't be done in-place. + return state_; // Not done yet. + } + Representation old_representation = old_details.representation(); if (!old_representation.CanBeInPlaceChangedTo(new_representation_)) { return state_; // Not done yet. @@ -667,7 +675,7 @@ Handle MapUpdater::BuildDescriptorArray() { } Handle MapUpdater::FindSplitMap(Handle descriptors) { - DisallowHeapAllocation no_allocation; + DisallowGarbageCollection no_gc; int root_nof = root_map_->NumberOfOwnDescriptors(); Map current = *root_map_; @@ -675,7 +683,7 @@ Handle MapUpdater::FindSplitMap(Handle descriptors) { Name name = descriptors->GetKey(i); PropertyDetails details = descriptors->GetDetails(i); Map next = - TransitionsAccessor(isolate_, current, &no_allocation) + TransitionsAccessor(isolate_, current, &no_gc) .SearchTransition(name, details.kind(), details.attributes()); if (next.is_null()) break; DescriptorArray next_descriptors = next.instance_descriptors(kRelaxedLoad); -- cgit v1.2.1