diff options
author | Michaël Zasso <targos@protonmail.com> | 2021-02-24 14:47:06 +0100 |
---|---|---|
committer | Michaël Zasso <targos@protonmail.com> | 2021-02-25 00:14:47 +0100 |
commit | c5ff019a4e93891106859cb272ded1197a92c7e5 (patch) | |
tree | caf6b7e50b0ceac09878ac4402d9f725b8685dd7 /deps/v8/src/objects/map-updater.cc | |
parent | 67dc2bf2084b125dec43689874d237d125562cdf (diff) | |
download | node-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.cc | 12 |
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); |