ladybird/Libraries/LibJS/Heap
Andreas Kling f7a1696087 LibJS: Add MarkedValueList and use it for argument passing
A MarkedValueList is basically a Vector<JS::Value> that registers with
the Heap and makes sure that the stored values don't get GC'd.

Before this change, we were unsafely keeping Vector<JS::Value> in some
places, which is out-of-reach for the live reference finding logic
since Vector puts its elements on the heap by default.

We now pass all the JavaScript tests even when running with "js -g",
which does a GC on every heap allocation.
2020-04-19 17:34:33 +02:00
..
DeferGC.h LibJS: Add DeferGC, a RAII way to prevent GC temporarily 2020-04-19 12:09:32 +02:00
Handle.cpp LibJS: Add missing copyright headers 2020-03-18 20:21:06 +01:00
Handle.h LibJS: Add missing copyright headers 2020-03-18 20:21:06 +01:00
Heap.cpp LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
Heap.h LibJS: Add MarkedValueList and use it for argument passing 2020-04-19 17:34:33 +02:00
HeapBlock.cpp LibJS: Port garbage collector to Linux 2020-03-23 13:14:57 +01:00
HeapBlock.h LibJS: Implement basic conservative garbage collection 2020-03-16 19:14:09 +01:00