mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 02:07:36 +00:00
LibJS: Notify WeakSets when heap cells are sweeped
This is an implementation of the following optional optimization: https://tc39.es/ecma262/#sec-weakref-execution
This commit is contained in:
parent
fb63aeae4d
commit
a00d154522
7 changed files with 62 additions and 3 deletions
|
@ -70,6 +70,9 @@ public:
|
|||
void did_create_marked_value_list(Badge<MarkedValueList>, MarkedValueList&);
|
||||
void did_destroy_marked_value_list(Badge<MarkedValueList>, MarkedValueList&);
|
||||
|
||||
void did_create_weak_set(Badge<WeakSet>, WeakSet&);
|
||||
void did_destroy_weak_set(Badge<WeakSet>, WeakSet&);
|
||||
|
||||
void defer_gc(Badge<DeferGC>);
|
||||
void undefer_gc(Badge<DeferGC>);
|
||||
|
||||
|
@ -106,6 +109,8 @@ private:
|
|||
|
||||
HashTable<MarkedValueList*> m_marked_value_lists;
|
||||
|
||||
HashTable<WeakSet*> m_weak_sets;
|
||||
|
||||
BlockAllocator m_block_allocator;
|
||||
|
||||
size_t m_gc_deferrals { 0 };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue