- 06 Oct, 2020 1 commit
-
-
Ulan Degenbaev authored
This reverts commit 969cdfe6. Reason for revert: speculative revert for crbug.com/1135472 Original change's description: > [heap] Convert WeakObjects to heap::base::Worklist > > This splits WeakObjects into explicit global and local worklists. > The latter are defined in WeakObjects::Local and are thread-local. > > The main thread local worklist is stored in > MarkCompactCollector::local_weak_objects and exists during marking > similar to local_marking_worklists. Concurrent markers create their > own local worklists that are published at the end. > > Change-Id: I093fdc580b4609ce83455b860b90a5099085beac > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2440607 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70317} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I3fa3bfdcf3c359f46a3b56c19fb4e486883cde9d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2452749Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#70344}
-
- 05 Oct, 2020 1 commit
-
-
Ulan Degenbaev authored
This splits WeakObjects into explicit global and local worklists. The latter are defined in WeakObjects::Local and are thread-local. The main thread local worklist is stored in MarkCompactCollector::local_weak_objects and exists during marking similar to local_marking_worklists. Concurrent markers create their own local worklists that are published at the end. Change-Id: I093fdc580b4609ce83455b860b90a5099085beac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2440607 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#70317}
-
- 30 Jul, 2020 1 commit
-
-
Gus Caplan authored
Bug: v8:9891 Change-Id: Ief289a9990ac545aa479f564094e3bbde4144aae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2293709 Commit-Queue: Gus Caplan <snek@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69145}
-
- 07 Jul, 2020 2 commits
-
-
Shu-yu Guo authored
The unregister_token slot is iterated as a custom weak pointer slot, which means the heap verifier treats it as a strong slot. Currently, popped WeakCells (that is, WeakCells for which the owning FinalizationRegistry's finalizer has already been invoked) neither clears out the unregister_token slot nor marks it, which trips the heap verifier. Bug: chromium:1102161 Change-Id: I0a803f12379fc9df6935bc8331b3d5ecb199571a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2284202 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#68723}
-
Jake Hughes authored
In many cases, this simply requires early returning from tests which rely on scavenger. Bug: v8:10614 Change-Id: I5fc93b1cbc807b73bfbb113d087952e347001ddd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2270548Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Jake Hughes <jakehughes@google.com> Cr-Commit-Position: refs/heads/master@{#68702}
-
- 24 Apr, 2020 1 commit
-
-
Shu-yu Guo authored
The js_weak_refs worklist is currently not updated after scavenges, unlike other weak reference worklist. Bug: v8:8179, chromium:1073981 Change-Id: I48172606995253edb8a0c96f2b7e2dc34cd3d0d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2163827 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67350}
-
- 16 Apr, 2020 1 commit
-
-
Shu-yu Guo authored
To avoid shrinking the unregister token map on each pop of the cleared cell list, the Torque implementation of the cleanup loop avoids shrinking the map until the end of the loop. To support that, PopClearedCellHoldings is refactored to the Torque PopClearedCell which calls the JSFinalization::RemoveCellFromUnregisterTokenMap and the runtime ShrinkFinalizationRegistryUnregisterTokenMap. The former cannot GC is and is implemented in CSA as a fast C call. The latter can GC and is a runtime call. This also incidentally makes uses of FinalizationRegistry without unregister token a fast path that doesn't have to leave Torque. Bug: v8:8179 Change-Id: Ia0c3c5800d26e31319a818f164f6bd3267355aa6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2137950 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67161}
-
- 25 Feb, 2020 1 commit
-
-
Shu-yu Guo authored
The deprecated legacy FinalizationGroup APIs are left unchanged for compat. Bug: v8:8179 Change-Id: I9bdcaa92360db318c96fc8524c04163ece25118e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071236 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#66437}
-
- 24 Feb, 2020 1 commit
-
-
Shu-yu Guo authored
Renaming the JS-visible identifiers and strings is left for a future CL. FinalizationGroup was renamed at Feb 2020 TC39, to better signal that if a FinalizationRegistry dies, the finalization actions registered with it may no longer be performed. Bug: v8:8179 Change-Id: I0d676a71a4a67d2b7175994a67458a6158065844 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2055381Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#66416}
-
- 19 Feb, 2020 1 commit
-
-
Shu-yu Guo authored
In the spec, WeakRefs that are dereferenced are kept alive until there's no JS on the stack, and then the host is expected to call ClearKeptObjects to clear those strong references [1]. HTML calls ClearKeptObjects at the end of a PerformMicrotaskCheckpoint [2]. In V8, leaving this up to the embedder is error prone in the same way the deprecated FinalizationGroup callback APIs were error prone: it depends on the embedder doing the right thing. This CL moves the call to ClearKeptObjects to be after running of microtasks within V8. However, the Isolate::ClearKeptObjects API should not be removed or deprecated in case an embedder uses an entirely custom MicrotaskQueue implementation and invokes MicrotaskQueue::PerformCheckpoint manually. [1] https://tc39.es/proposal-weakrefs/#sec-clear-kept-objects [2] https://github.com/whatwg/html/pull/4571 Bug: v8:8179 Change-Id: Ie243804157b56241ca69ed8fad300e839a0c9f75 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2055967 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#66327}
-
- 19 Dec, 2019 1 commit
-
-
Shu-yu Guo authored
Change unregister tokens to be held weakly instead of strongly. This enables the use case for an object to be used as its own unregister token. To avoid using an ephemeron table, FinalizationGroup's key_map is changed to key off unregister tokens' identity hashes. Because hashes may collide, a single key list may rarely contain multiple tokens. When a FinalizationGroup WeakCell's token becomes unreachable, during GC, it is removed from the the doubly linked key list and removed from the key map if it had a unique key. Bug: v8:8179 Change-Id: If88fd2ab196e3f9a287990ae345117a0abb2f04d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970493 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#65532}
-
- 30 Jul, 2019 1 commit
-
-
Sathya Gunasekaran authored
Previously, this was run as a microtask and this CL changes it to run as a separate task as mandated by the current WeakRef spec. This CL also introduces a FinalizationGroup type to the V8 API representing the JSFinalizationGroup. This has a `Cleanup` function that runs the cleanup callback associated with it. SetHostCleanupFinalizationGroupCallback is added to set the embedder defined HostCleanupFinalizationGroupCallback. ClearKeptObject is exposed on the v8::Isolate to reset the strongly held set of objects. The general workflow is the following: (a) When the GC notices that a given finalization group has dirty cells, it calls HostCleanupFinalizationGroupCallback with the given finalization group. (b) As part of HostCleanupFinalizationGroupCallback, the embedder enqueues a task that at some point later calls FinalizationGroup::Cleanup. (c) At some point in the future, FinalizationGroup::Cleanup is called, which runs the cleanup callback of the finalization group. This patch also includes d8 changes to use these new APIs. Currently, d8 cycles through the enqueued finalization groups after a synchronous turn (and it's microtask checkpoint) and runs the cleanup callbacks. Change-Id: I06eb4da2c103b2792a9c62bc4b98fd4e5c4892fc Bug: v8:8179 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655655 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#62984}
-
- 13 Jun, 2019 1 commit
-
-
Sathya Gunasekaran authored
Align with the spec defined names. Bug: v8:8179 Change-Id: I892a2627c7712112b47a87e7a658dc4066540482 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1655654Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#62136}
-
- 23 May, 2019 2 commits
-
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
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}
-
- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 31 Jan, 2019 1 commit
-
-
Marja Hölttä authored
(The bug didn't affect any functionality; we just left detached WeakCells in inconsistent state.) BUG=v8:8179 Change-Id: I28f6c27532383b94bdfd746db903096f1dc6f1cc Reviewed-on: https://chromium-review.googlesource.com/c/1447651Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#59255}
-
- 30 Jan, 2019 2 commits
-
-
Marja Hölttä authored
The test defined a function called "Register" which clashes with other functions with the same name. NOTRY=true TBR=sigurds@chromium.org BUG=v8:8179 Change-Id: I7ddfc481cd1de750272de7b43e2e7f9fe26626a9 Reviewed-on: https://chromium-review.googlesource.com/c/1445982Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#59208}
-
Marja Hölttä authored
This replaces WeakFactory with FinalizationGroup. New API is here: https://weakrefs.netlify.com/ BUG=v8:8179 Change-Id: I8c1c4a70deb42581d17117423dd29d93bdd35cb0 Reviewed-on: https://chromium-review.googlesource.com/c/1435938Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#59204}
-
- 16 Jan, 2019 1 commit
-
-
tzik authored
This retires Isolate::RunMicrotasks in favor of using MicrotaskQueue::RunMicrotasks. Bug: v8:8124 Change-Id: I717dabce7c4127d7e4524bdb639f46c3d55df49b Reviewed-on: https://chromium-review.googlesource.com/c/1385969Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Cr-Commit-Position: refs/heads/master@{#58866}
-
- 26 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Tbr: ahaas@chromium.org,leszeks@chromium.org,verwaest@chromium.org Bug: v8:3770 Change-Id: Ia6530fbb70dac05e9972283781c3550d8b50e1eb Reviewed-on: https://chromium-review.googlesource.com/c/1390116 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#58470}
-
- 20 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Merging the temporary HeapObjectPtr back into HeapObject. Bug: v8:3770 Change-Id: I5bcd23ca2f5ba862cf5b52955dca143e531c637b Reviewed-on: https://chromium-review.googlesource.com/c/1386492 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58410}
-
- 18 Dec, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:8179 Change-Id: I8ef7d3b576db9e872ab527895f5ba3be4ba3f6ce Reviewed-on: https://chromium-review.googlesource.com/c/1379881Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#58304}
-
- 08 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I1d74ffe9e5478b4b8bc0acbf088d20919d458d50 Reviewed-on: https://chromium-review.googlesource.com/c/1363822 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58112}
-
- 23 Nov, 2018 1 commit
-
-
Marja Hölttä authored
+ fixing other files which were depending on context-inl.h pulling in the missing includes. BUG=v8:7490,v8:8238 Change-Id: I90d37599bdfb69ac8fd7e62b8fb78d9d77c77234 Reviewed-on: https://chromium-review.googlesource.com/c/1349277Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#57775}
-
- 24 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
as part of the continuing quest to get rid of Object*/Object**. This is a fairly mechanical replacement of Object**/MaybeObject** with wrapper objects carrying the same data. No change in behavior is intended. Overloaded operators are provided to minimize code churn. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I76cee82b8bf2dd80a1b66f09dd2bb2b65038eeb7 Reviewed-on: https://chromium-review.googlesource.com/c/1287889 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56920}
-
- 23 Oct, 2018 1 commit
-
-
Marja Hölttä authored
Previous version: https://chromium-review.googlesource.com/c/v8/v8/+/1292058 BUG=v8:8179 TBR=hpayer@chromium.org, gsathya@chromium.org Change-Id: Ia79b75a0630c5926e59206c29053addc88bfb6fe Reviewed-on: https://chromium-review.googlesource.com/c/1296210Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56886}
-
- 22 Oct, 2018 2 commits
-
-
Marja Hölttä authored
This reverts commit 49bd7f50. Reason for revert: breaks nonintl build since the added string is inside wrong ifdefs Original change's description: > [js weak refs] Add WeakCell.clear() > > BUG=v8:8179 > > Change-Id: Ic0d9af273a8a92177bf60e4be0dd5bddaf31868c > Reviewed-on: https://chromium-review.googlesource.com/c/1292058 > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Marja Hölttä <marja@chromium.org> > Cr-Commit-Position: refs/heads/master@{#56853} TBR=marja@chromium.org,hpayer@chromium.org,gsathya@chromium.org Change-Id: I7d6831cfd8a5263ee327c2a80274d1cd10dd65cc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8179 Reviewed-on: https://chromium-review.googlesource.com/c/1293573Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56855}
-
Marja Hölttä authored
BUG=v8:8179 Change-Id: Ic0d9af273a8a92177bf60e4be0dd5bddaf31868c Reviewed-on: https://chromium-review.googlesource.com/c/1292058Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#56853}
-
- 11 Oct, 2018 1 commit
-
-
Marja Hölttä authored
These test mainly the data structures of JSWeakFactory / JSWeakCell. BUG=v8:8179 Change-Id: I20ffd07c18bbb2e21c69d11aa65d1e245203cc82 Reviewed-on: https://chromium-review.googlesource.com/c/1267939 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#56569}
-