- 28 Apr, 2022 1 commit
-
-
Michael Lippautz authored
- Rely on GCCallbacksScope to avoid nesting callbacks. - Use a single entrypoint consistently for all callsites. Change-Id: I6be1f749a2d6bfc9d5db4c84c753e9176472bce2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605821Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80268}
-
- 25 Apr, 2022 1 commit
-
-
Michael Lippautz authored
Young GlobalHandle nodes were processed during post processing which required a logic to defend against recursive GCs. This was originally designed in a delayed way as the list itself was only treated as an optimization and could thus be lazily cleared. Since this still happens in the atomic pause and every node needs to be visited, there's no advantage over just keeping it correct at all times. Bug: chromium:1319213 Change-Id: I199fc0be5e4b6ed5cbb60cf3b1452e37108cd4f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605281Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80161}
-
- 22 Apr, 2022 1 commit
-
-
Michael Lippautz authored
Remove PENDING state as handles were always immediately transitioned into FREE or NEAR_DEATH state. Bug: v8:12672 Change-Id: I9a9d40b573e862282d41d7a4a3f9c8c8ed21b9e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3599473Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80119}
-
- 21 Apr, 2022 2 commits
-
-
Michael Lippautz authored
This reverts commit 2d394aca. Concurrrent marking for v8::TracedReference requires a single bit in global handles to be written concurrently. While no other bits require concurrent access, initialization still needs to properly publish the the bitfield. Publishing generally allows all bits to be read on any thread which is already used for some. The CL introduces acq/rel semantics on the actual object pointer for publishing the state. Bug: chromium:1315498, v8:12600 Change-Id: Ic50c7c0b647b8b609bcd899f6c9f73bee80303da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596125Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80085}
-
Michael Lippautz authored
Removes V8-internal support for resurrecting finalizers in the garbage collector. The APIs have already been removed in http://crrev.com/c/3596174 Bug: v8:12672 Change-Id: Ia507e74659b61a2c8c08281d7f395aee51e3fe17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584115Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80078}
-
- 23 Mar, 2022 1 commit
-
-
Michael Lippautz authored
Remove deprecated TracedGlobal<>, greatly simplifying handling of traced references in general. Also saves a word per v8::TracedReference as there's no need to keep a possible callback around. Bug: v8:12603 Change-Id: Ice35d7906775b912d02e97a27a722b3e1cec28d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3532251Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79589}
-
- 17 Feb, 2022 1 commit
-
-
Michael Lippautz authored
Avoid the lookup via heap()->incremental_marking() and instead cache the marking state on GlobalHandles itself. Change-Id: I2665681ad38983bf16d22e0a82dd10743877e520 Bug: chromium:1294661 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468903Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79138}
-
- 28 Oct, 2021 1 commit
-
-
Michael Lippautz authored
TracedReferenceBase use (traced) global handles to implement the referencs. Provide a write barrier in the corresponding handle methods. Doing so - avoids bugs by having embedders taking care of write barrier management. - speeds up the barrier as it is better integrated in the handle methods. Drive-by: We don't need write barriers on initializating stores. Bug: v8:12165 Change-Id: Ie49cc3783aeed576fd46c957c473c61362fefbf2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3247039 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77593}
-
- 20 Sep, 2021 1 commit
-
-
Igor Sheludko authored
... and move methods that use XXX::cast() there. This will untangle the include cycle that'll happen in a follow-up CLs. Bug: v8:11880 Change-Id: Iba46bc9b0e0df9530197f57d0469456eb9006e66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3164456Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#76932}
-
- 24 Aug, 2021 1 commit
-
-
Dan Elphick authored
This is a reland of d1b27019 Fixes include: Adding missing file to bazel build Forward-declaring classing before friend-classing them to fix win/gcc Add missing v8-isolate.h include for vtune builds Original change's description: > [include] Split out v8.h > > This moves every single class/function out of include/v8.h into a > separate header in include/, which v8.h then includes so that > externally nothing appears to have changed. > > Every include of v8.h from inside v8 has been changed to a more > fine-grained include. > > Previously inline functions defined at the bottom of v8.h would call > private non-inline functions in the V8 class. Since that class is now > in v8-initialization.h and is rarely included (as that would create > dependency cycles), this is not possible and so those methods have been > moved out of the V8 class into the namespace v8::api_internal. > > None of the previous files in include/ now #include v8.h, which means > if embedders were relying on this transitive dependency then it will > give compile failures. > > v8-inspector.h does depend on v8-scripts.h for the time being to ensure > that Chrome continue to compile but that change will be reverted once > those transitive #includes in chrome are changed to include it directly. > > Full design: > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing > > Bug: v8:11965 > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/main@{#76424} Cq-Include-Trybots: luci.v8.try:v8_linux_vtunejit Bug: v8:11965 Change-Id: I99f5d3a73bf8fe25b650adfaf9567dc4e44a09e6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113629Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/main@{#76460}
-
- 23 Aug, 2021 2 commits
-
-
Dan Elphick authored
This reverts commit d1b27019. Reason for revert: Broke vtune build, tsan build and possibly others Original change's description: > [include] Split out v8.h > > This moves every single class/function out of include/v8.h into a > separate header in include/, which v8.h then includes so that > externally nothing appears to have changed. > > Every include of v8.h from inside v8 has been changed to a more > fine-grained include. > > Previously inline functions defined at the bottom of v8.h would call > private non-inline functions in the V8 class. Since that class is now > in v8-initialization.h and is rarely included (as that would create > dependency cycles), this is not possible and so those methods have been > moved out of the V8 class into the namespace v8::api_internal. > > None of the previous files in include/ now #include v8.h, which means > if embedders were relying on this transitive dependency then it will > give compile failures. > > v8-inspector.h does depend on v8-scripts.h for the time being to ensure > that Chrome continue to compile but that change will be reverted once > those transitive #includes in chrome are changed to include it directly. > > Full design: > https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing > > Bug: v8:11965 > Change-Id: I53b84b29581632710edc80eb11f819c2097a2877 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Dan Elphick <delphick@chromium.org> > Cr-Commit-Position: refs/heads/main@{#76424} Bug: v8:11965 Change-Id: Id57313ae992e720c8b19abc975cd69729e1344aa No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3113627 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Owners-Override: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#76428}
-
Dan Elphick authored
This moves every single class/function out of include/v8.h into a separate header in include/, which v8.h then includes so that externally nothing appears to have changed. Every include of v8.h from inside v8 has been changed to a more fine-grained include. Previously inline functions defined at the bottom of v8.h would call private non-inline functions in the V8 class. Since that class is now in v8-initialization.h and is rarely included (as that would create dependency cycles), this is not possible and so those methods have been moved out of the V8 class into the namespace v8::api_internal. None of the previous files in include/ now #include v8.h, which means if embedders were relying on this transitive dependency then it will give compile failures. v8-inspector.h does depend on v8-scripts.h for the time being to ensure that Chrome continue to compile but that change will be reverted once those transitive #includes in chrome are changed to include it directly. Full design: https://docs.google.com/document/d/1rTD--I8hCAr-Rho1WTumZzFKaDpEp0IJ8ejZtk4nJdA/edit?usp=sharing Bug: v8:11965 Change-Id: I53b84b29581632710edc80eb11f819c2097a2877 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3097448Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/main@{#76424}
-
- 30 Nov, 2020 1 commit
-
-
Zhi An Ng authored
Bug: v8:11074 Change-Id: I7af4fb1fd93e1b369fdca5b9e726dcafa43b0afb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2565081Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71476}
-
- 08 Oct, 2020 1 commit
-
-
Leszek Swirski authored
Create a HandleScope when serializing an object's contents, to reduce the number of live handles during serialization. There's only a couple of cases where these handles have to outlive the serialized contents, and for these cases we introduce GlobalHandleVector or similar manual strong root mechanisms. In particular, backrefs don't actually need to exist as a handle vector (the object addresses are already referred to by the reference map's IdentityMap), except for DCHECKs, so this becomes a DEBUG-only global handle vector. To support this manual strong-rooting, the HotObjectList is split up into a strong-rooted find-only class in Serializer, and a Handle vector in Deserializer. Bug: chromium:1075999 Change-Id: I586eeeb543e3f6c934c168961b068f2c34e72456 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2449980Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#70411}
-
- 21 Jul, 2020 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1107901 Change-Id: Ieacea3dd60e80143a0cbeebf4ab5f91d3888e1a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2310351 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68974}
-
- 10 Mar, 2020 1 commit
-
-
Dominik Inführ authored
Report the allocated size of global handles in GetHeapStatistics as well, not including free handles. Bug: chromium:1060192 Change-Id: I1aedba36735f897cd8518edbb5ef2261cc348bff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2093493 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66651}
-
- 03 Mar, 2020 1 commit
-
-
Dominik Inführ authored
Report the total size of global handles in GetHeapStatistics as well. This size includes used and free global handles. Change-Id: I08c0647d993a810a37ae9f332732de9551b5ea8d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2083020 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66562}
-
- 03 Feb, 2020 1 commit
-
-
Michael Lippautz authored
Similar to other stack references they don't need to be scanned on incremental marking start. Bug: chromium:1046277 Change-Id: I9fb3ee768df0288b5a61f09e680e321a8cb7b895 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030915Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66080}
-
- 16 Jan, 2020 1 commit
-
-
Michael Lippautz authored
Previously, V8 was just relinking nodes which broke when a move involves an on-stack reference as such nodes have different semantics. The solution is to create new internal nodes when necessary. Bug: chromium:1040038 Change-Id: Ia5b3866ae68d014beb30972c4266aa5bae6559fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002546 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#65823}
-
- 14 Jan, 2020 1 commit
-
-
Michael Lippautz authored
- Introduces a API to set top of the stack through EmbedderHeapTracer::SetStackTop. - Introduces a new API to inform V8 about an empty embedder stack. - Switch internal representation of TracedReference for on-stack handles to a proper stack that considers all contained handles as roots. - Handle garbage is avoided by cleaning up on handle creation or GC. Design doc: https://bit.ly/on-stack-traced-reference Bug: chromium:1040038 Change-Id: I927ef0abb268fdb5853c9e17b1bc96e2491cf101 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1993973 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#65757}
-
- 05 Dec, 2019 1 commit
-
-
Ulan Degenbaev authored
Currently a TracedNode of a TracedReference is freed only if its target V8 object is unreachable. This is problematic for TracedNodes created for long-living (or immortal) V8 objects and leads to memory leaks. This CL adds logic for collecting unreachable TracedNodes: 1) Each TracedNode gets a markbit. Initially the markbit is set (i.e. we have black allocation for TracedNodes). 2) During marking RegisterEmbedderReference sets the markbit of the corresonding TracedNode. 3) In the atomic pause of Mark-Compact when TracedNodes are iterated, we check the markbits and free TracedNodes with cleared markbits. After this processing all markbits are cleared for the next GC. Note that the new logic does not apply to TracedNode that have callbacks and/or destructors. Bug: chromium:1029738 Change-Id: I38e76a8b4a84170793998988b1a7962e40874428 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948722 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#65347}
-
- 13 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/1800575 and https://crrev.com/c/1803343, which tried to fix this on occuring compile errors, this CL systematically adds the <memory> include to each header that uses {std::unique_ptr}. R=sigurds@chromium.org TBR=mlippautz@chromium.org,alph@chromium.org,rmcilroy@chromium.org,verwaest@chromium.org Bug: v8:9396 Change-Id: If7f9c3140842f9543135dddd7344c0f357999da0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803349Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63767}
-
- 29 Aug, 2019 1 commit
-
-
Michael Lippautz authored
Provide copy ctor and assignment operators as it turned out that they are useful for embedders in certain scenarios when dealing with TracedGlobal handles without finalization callbacks. Bug: v8:9660 Change-Id: I2b04f540baeef61a0bc8329ca06b999571cbfe66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773250 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#63439}
-
- 23 Aug, 2019 1 commit
-
-
Michael Lippautz authored
Avoid clearing the memory on the embedder-side of a TracedGlobal handle. When using destructors in TracedGlobal this is safe as long as the embedder reports the handle on tracing GCs. If the embedder does not report a handle it is assumed that the containing object is dead as well. Without using destructors the same argument holds for tracing GCs. In addition, embedders using the optimization of clearing references on non-tracing GCs are expected to clear the reference in ResetHandleInNonTracingGC. It is suggested that only expert embedders make use of (a) no destructors and (b) IsRootForNonTracingGC. Change-Id: Ia417c0eb0860094fcaa554e7046d38abac905714 Bug: chromium:995684 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763539 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#63362}
-
- 27 May, 2019 1 commit
-
-
Clemens Hammacher authored
This replaces all typedefs that define types and not functions by the equivalent "using" declaration. This was done mostly automatically using this command: ag -l '\btypedef\b' src test | xargs -L1 \ perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg' Patchset 2 then adds some manual changes for typedefs for pointer types, where the regular expression did not match. R=mstarzinger@chromium.org TBR=yangguo@chromium.org, jarin@chromium.org Bug: v8:9183 Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61849}
-
- 23 May, 2019 3 commits
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
Yang Guo authored
Bug: v8:9247 Change-Id: I0023200c54fa6499ae4e2cf5e4c89407cc35f187 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624218Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61762}
-
- 14 May, 2019 1 commit
-
-
Anna Henningsen authored
Previously, processing second pass callbacks could have been called recursively, and depending on the source of the GC, either with the ability to call into JS or not. Make the behaviour consistent by a) no iterating over the second pass callback list when we are already doing so and b) explicitly allowing JS execution. Refs: https://github.com/nodejs/node/issues/27577 Change-Id: Ia13f775b323df4e49e28429ca88cf7d3a77883e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1607762 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#61466}
-
- 04 Apr, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: Ie624a02598f5c3a43e40e03d0337c17ca5cc3769 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541052 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#60628}
-
- 18 Mar, 2019 1 commit
-
-
Michael Lippautz authored
Bug: chromium:923361, v8:8834 Change-Id: I6ec42aeb74bea5c0629fcdc3f95c125f5de534a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1526195 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60289}
-
- 11 Feb, 2019 1 commit
-
-
Ulan Degenbaev authored
Bug: chromium:852420 Change-Id: I9c86353734055ef08ab5b2d3c55bf5dd0a870335 Reviewed-on: https://chromium-review.googlesource.com/c/1463520 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59511}
-
- 05 Feb, 2019 1 commit
-
-
Michael Lippautz authored
Introduce a way to set a custom finalization callback that can be used to signal and set up destruction of embedder memory. Bug: chromium:923361 Change-Id: Ifc62ebd534aba3b02511c74b59161ec3edc0ee0d Reviewed-on: https://chromium-review.googlesource.com/c/1452447 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59381}
-
- 29 Jan, 2019 1 commit
-
-
Michael Lippautz authored
TracedGlobal integrates with the use case of EmbedderHeapTracer and replaces regular weak Global or Persistent nodes for such cases. This allows to simplify the case for regular weak handles in a sense that they follow regular weak semantics (if the underlying object is otherwise unreachable the weak handle will be reset). TracedGlobal requires slightly different semantics in the sense that it can be required to keep them alive on Scavenge garbage collections because there's a transitive path that is only known when using the EmbedderHeapTracer. TracedGlobal accomodates that use case. TracedGlobal follows move semantics and can thus be used in regular std containers without wrapping data structure. The internal state uses 20% less memory and allows for only iterating those nodes when necessary. The design trades the virtual call when iterating interesting persistents in the GC prologue with calling out through the EmbedderHeapTracer for each node which is also a virtual call. There is one less iteration over the set of handles required though and the design is robust against recursive GCs that mutate the embedder state during the prologue callback. Bug: chromium:923361 Change-Id: Idbacfbe4723cd12af9de21058a4792e51dc4df74 Reviewed-on: https://chromium-review.googlesource.com/c/1425523 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59183}
-
- 24 Jan, 2019 1 commit
-
-
Michael Lippautz authored
v8::Global may be used as a weak reference. In the case this reference is a simple phantom reference, we need to update the internal state to be able to clear the right slot once the object referred to is dead. This reverts commit 18f32ca8. Bug: chromium:924220 Change-Id: I3caec77448b0c5fcb461c8f8b5015de2978b3931 Reviewed-on: https://chromium-review.googlesource.com/c/1430015Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#59055}
-
- 23 Jan, 2019 2 commits
-
-
Maya Lekova authored
This reverts commit 584f0b43. Reason for revert: Breaks MSAN build - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/24872 Original change's description: > [api, global-handles] Fix moving weak Global<T> > > v8::Global may be used as a weak reference. In the case this reference is a > simple phantom reference, we need to update the internal state to be able to > clear the right slot once the object refered to is dead. > > Bug: chromium:924220 > Change-Id: I2ab7c3afcbe22988791faef406c284db03a43caf > Reviewed-on: https://chromium-review.googlesource.com/c/1430101 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59040} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: I19c3e929962203df4e1f24191d054180723b1c9d No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:924220 Reviewed-on: https://chromium-review.googlesource.com/c/1430833Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#59046}
-
Michael Lippautz authored
v8::Global may be used as a weak reference. In the case this reference is a simple phantom reference, we need to update the internal state to be able to clear the right slot once the object refered to is dead. Bug: chromium:924220 Change-Id: I2ab7c3afcbe22988791faef406c284db03a43caf Reviewed-on: https://chromium-review.googlesource.com/c/1430101 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#59040}
-
- 22 Jan, 2019 3 commits
-
-
Michael Lippautz authored
Reworking and adding a node type would require also adding parallelization support for minor mc. Since this is unused and not benchmarked right now, just remove it. Bug: chromium:923361 Change-Id: Iaf67a743d76d2b37ffff9961b510bfd8a1bd15ff Reviewed-on: https://chromium-review.googlesource.com/c/1425900 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#58993}
-
Michael Lippautz authored
This reverts commit 5043ab26. Tbr: ulan@chromium.org Bug: chromium:923361 Change-Id: I3a2cf2c29fe4dc424def8dc086856ed3301f2fc2 Reviewed-on: https://chromium-review.googlesource.com/c/1425904Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58992}
-
Michael Lippautz authored
This reverts commit 2b77aaf4. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20cfi/18836 Original change's description: > [global-handles] Restructure GC post processing > > Bug: chromium:923361 > Change-Id: I97a0314b6d5af543e0574f27892c73637739844d > Reviewed-on: https://chromium-review.googlesource.com/c/1426124 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58984} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: I8220c60573cf7f4a1ced99bcd18628933c45f41e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:923361 Reviewed-on: https://chromium-review.googlesource.com/c/1425901Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#58985}
-