Skip to content

Commit 182caaf

Browse files
hashseedCommit Bot
authored andcommitted
Do not track transitions for built-in objects.
Objects created during bootstrapping do not need a transition tree except for elements kind transitions. [email protected] Bug: v8:6596 Change-Id: I237b8b2792f201336e1c9731c815095dd06bc182 Reviewed-on: https://chromium-review.googlesource.com/571750 Reviewed-by: Igor Sheludko <[email protected]> Commit-Queue: Yang Guo <[email protected]> Cr-Commit-Position: refs/heads/master@{#46693}
1 parent 048dbc6 commit 182caaf

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

src/objects.cc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8993,7 +8993,13 @@ void Map::TraceAllTransitions(Map* map) {
89938993

89948994
void Map::ConnectTransition(Handle<Map> parent, Handle<Map> child,
89958995
Handle<Name> name, SimpleTransitionFlag flag) {
8996-
if (!parent->GetBackPointer()->IsUndefined(parent->GetIsolate())) {
8996+
Isolate* isolate = parent->GetIsolate();
8997+
// Do not track transitions during bootstrap except for element transitions.
8998+
if (isolate->bootstrapper()->IsActive() &&
8999+
!name.is_identical_to(isolate->factory()->elements_transition_symbol())) {
9000+
return;
9001+
}
9002+
if (!parent->GetBackPointer()->IsUndefined(isolate)) {
89979003
parent->set_owns_descriptors(false);
89989004
} else {
89999005
// |parent| is initial map and it must keep the ownership, there must be no

0 commit comments

Comments
 (0)