summaryrefslogtreecommitdiff
path: root/deps/v8/src/objects/map-updater.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2021-02-24 14:47:06 +0100
committerMichaël Zasso <targos@protonmail.com>2021-02-25 00:14:47 +0100
commitc5ff019a4e93891106859cb272ded1197a92c7e5 (patch)
treecaf6b7e50b0ceac09878ac4402d9f725b8685dd7 /deps/v8/src/objects/map-updater.cc
parent67dc2bf2084b125dec43689874d237d125562cdf (diff)
downloadnode-new-c5ff019a4e93891106859cb272ded1197a92c7e5.tar.gz
deps: update V8 to 8.9.255.19
PR-URL: https://github.com/nodejs/node/pull/37330 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'deps/v8/src/objects/map-updater.cc')
-rw-r--r--deps/v8/src/objects/map-updater.cc12
1 files changed, 10 insertions, 2 deletions
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<DescriptorArray> MapUpdater::BuildDescriptorArray() {
}
Handle<Map> MapUpdater::FindSplitMap(Handle<DescriptorArray> descriptors) {
- DisallowHeapAllocation no_allocation;
+ DisallowGarbageCollection no_gc;
int root_nof = root_map_->NumberOfOwnDescriptors();
Map current = *root_map_;
@@ -675,7 +683,7 @@ Handle<Map> MapUpdater::FindSplitMap(Handle<DescriptorArray> 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);