-
Notifications
You must be signed in to change notification settings - Fork 29.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[v12.x] deps: V8: cherry-pick 548f6c81d424 #33553
Conversation
Original commit message: [runtime] Don't track transitions for certainly detached maps Previously such maps were marked as prototype, but that has bad performance / memory characteristics if objects are used as dictionaries. Bug: b:148346655, v8:10339 Change-Id: I287c5664c8b7799a084669aaaffe3affcf73e95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2179322 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67537} Refs: v8/v8@548f6c8 PR-URL: nodejs#33484 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matheus Marchini <mat@mmarchini.me> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
@@ -34,7 +34,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.37', | |||
'v8_embedder_string': '-node.38', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line had a conflict when cherrypicking, but I think this just needs an increment, right?
@@ -646,7 +646,7 @@ Map Map::FindRootMap(Isolate* isolate) const { | |||
// Initial map always owns descriptors and doesn't have unused entries | |||
// in the descriptor array. | |||
DCHECK(result.owns_descriptors()); | |||
DCHECK_EQ(result.NumberOfOwnDescriptors(), | |||
DCHECK_LE(result.NumberOfOwnDescriptors(), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line had a conflict (the context above it has changed) - I only changed the affected line.
@@ -1687,15 +1687,15 @@ void Map::ConnectTransition(Isolate* isolate, Handle<Map> parent, | |||
child->may_have_interesting_symbols()); | |||
if (!parent->GetBackPointer().IsUndefined(isolate)) { | |||
parent->set_owns_descriptors(false); | |||
} else { | |||
} else if (!parent->IsDetached(isolate)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line had a conflict (the context below it has changed) - I only changed the affected line.
@@ -2126,7 +2120,7 @@ Handle<Map> Map::TransitionToDataProperty(Isolate* isolate, Handle<Map> map, | |||
StoreOrigin store_origin) { | |||
RuntimeCallTimerScope stats_scope( | |||
isolate, *map, | |||
map->is_prototype_map() | |||
map->IsDetached(isolate) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line had a conflict (the context above it has changed) - I only changed the affected line.
@targos @dominykas Could you help us understand, To which version of Nodejs the fix will go? |
@ashupro we will not know which exact version this will be released in until this actually lands in a release, as the version is determined by semver, but this PR is for the |
This will probably land in the next non-security v12.x release, on 2020-06-16 |
Landed in af95bd7 |
Original commit message: [runtime] Don't track transitions for certainly detached maps Previously such maps were marked as prototype, but that has bad performance / memory characteristics if objects are used as dictionaries. Bug: b:148346655, v8:10339 Change-Id: I287c5664c8b7799a084669aaaffe3affcf73e95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2179322 Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67537} Refs: v8/v8@548f6c8 PR-URL: #33484 Backport-PR-URL: #33553 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Matheus Marchini <mat@mmarchini.me> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
git cherry-pick 78eb420fed154b7729283a3d63c99fa9989ffbea
Original commit message:
Refs: v8/v8@548f6c8
PR-URL: #33484
Reviewed-By: Anna Henningsen anna@addaleax.net
Reviewed-By: Matheus Marchini mat@mmarchini.me
Reviewed-By: Matteo Collina matteo.collina@gmail.com
Reviewed-By: Colin Ihrig cjihrig@gmail.com
Reviewed-By: James M Snell jasnell@gmail.com
Reviewed-By: Ruben Bridgewater ruben@bridgewater.de
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes