1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:28:11 +00:00
serenity/Userland/Libraries/LibJS/Heap
Andreas Kling c364520c24 LibJS+js+test-js: Add GC debug mode that keeps cells "alive" as zombies
This patch adds a `-z` option to js and test-js. When run in this mode,
garbage cells are never actually destroyed. We instead keep them around
in a special zombie state.

This allows us to validate that zombies don't get marked in future GC
scans (since there were not supposed to be any more references!) :^)

Cells get notified when they become a zombie (via did_become_zombie())
and this is used by WeakContainer cells to deregister themselves from
the heap.
2021-09-11 16:52:03 +02:00
..
BlockAllocator.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
BlockAllocator.h LibJS: Add inline capacity to BlockAllocator's blocks Vector 2021-05-28 00:07:24 +01:00
Cell.h LibJS+js+test-js: Add GC debug mode that keeps cells "alive" as zombies 2021-09-11 16:52:03 +02:00
CellAllocator.cpp LibJS: Rename Allocator => CellAllocator 2021-05-27 19:56:12 +02:00
CellAllocator.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
DeferGC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Handle.cpp LibJS: Move Cell.{cpp,h} from Runtime/ to Heap/ 2021-05-17 19:53:00 +02:00
Handle.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
Heap.cpp LibJS+js+test-js: Add GC debug mode that keeps cells "alive" as zombies 2021-09-11 16:52:03 +02:00
Heap.h LibJS+js+test-js: Add GC debug mode that keeps cells "alive" as zombies 2021-09-11 16:52:03 +02:00
HeapBlock.cpp LibJS: Don't generate unused HeapBlock names on non-SerenityOS systems 2021-06-13 19:11:29 +02:00
HeapBlock.h LibJS: Instrument HeapBlock cell allocation for ASAN 2021-05-29 17:47:29 +01:00