1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 07:58:11 +00:00
serenity/Userland/Libraries/LibJS
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
..
Bytecode LibJS: Change ExecutionContext's arguments list to a MarkedValueList 2021-08-10 23:07:50 +02:00
Heap LibJS+js+test-js: Add GC debug mode that keeps cells "alive" as zombies 2021-09-11 16:52:03 +02:00
Runtime LibJS+js+test-js: Add GC debug mode that keeps cells "alive" as zombies 2021-09-11 16:52:03 +02:00
Tests LibJS: Implement Intl.NumberFormat.prototype.resolvedOptions 2021-09-11 11:05:50 +01:00
AST.cpp LibJS: Restore the environment if an exception is thrown in 'with' block 2021-09-08 20:37:39 +01:00
AST.h LibJS: Add support for public fields in classes 2021-09-01 13:39:14 +01:00
CMakeLists.txt LibJS: Implement a nearly empty Intl.NumberFormat object 2021-09-11 11:05:50 +01:00
Console.cpp LibJS: Rename CallFrame => ExecutionContext 2021-06-24 19:28:00 +02:00
Console.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Forward.h LibJS: Implement a nearly empty Intl.NumberFormat object 2021-09-11 11:05:50 +01:00
Interpreter.cpp LibJS: Change ExecutionContext's arguments list to a MarkedValueList 2021-08-10 23:07:50 +02:00
Interpreter.h LibJS: Drop "Record" suffix from all the *Environment record classes 2021-07-01 12:28:57 +02:00
Lexer.cpp LibJS: Share "parsed identifiers" between copied JS::Lexer instances 2021-09-10 23:18:00 +02:00
Lexer.h LibJS: Share "parsed identifiers" between copied JS::Lexer instances 2021-09-10 23:18:00 +02:00
MarkupGenerator.cpp LibJS: Remove unused includes out of Cell.h, move to the users 2021-08-01 08:10:16 +02:00
MarkupGenerator.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Parser.cpp LibJS: Fix that windows style line endings were not ignored or converted 2021-09-06 08:43:38 +01:00
Parser.h Everywhere: Prevent risky implicit casts of (Nonnull)RefPtr 2021-09-03 23:20:23 +02:00
Script.cpp LibWeb+LibJS: Remember source filenames when using HTML::Script 2021-09-11 00:36:37 +02:00
Script.h LibWeb+LibJS: Remember source filenames when using HTML::Script 2021-09-11 00:36:37 +02:00
SourceRange.h LibJS: Implement parsing and evaluation for AssignmentPatterns 2021-07-11 21:41:54 +01:00
SyntaxHighlighter.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
SyntaxHighlighter.h LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
Token.cpp LibJS: Fix that windows style line endings were not ignored or converted 2021-09-06 08:43:38 +01:00
Token.h LibJS: Clean up token constructor and use method instead for identifiers 2021-09-06 08:43:38 +01:00