mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 05:57:44 +00:00
LibJS: Remove "uprooting" mechanism from garbage collector
The Heap::uproot_cell() API was used to implement markAsGarbage() which was used in 3 tests to forcibly destroy a value, even if it had references on the stack or elsewhere. This patch rewrites the 3 tests that used this mechanism to be structured in a way that allows garbage collection to collect the values as intended without hacks. And now that the uprooting mechanism is no longer needed, it's uprooted as well. This fixes 3 test-js tests in bytecode mode. :^)
This commit is contained in:
parent
9054b1bc14
commit
6232ad3a0d
6 changed files with 28 additions and 65 deletions
|
@ -3,9 +3,7 @@ test("length is 0", () => {
|
|||
});
|
||||
|
||||
function registerInDifferentScope(registry) {
|
||||
const target = {};
|
||||
registry.register(target, {});
|
||||
return target;
|
||||
registry.register({}, {});
|
||||
}
|
||||
|
||||
test("basic functionality", () => {
|
||||
|
@ -20,8 +18,7 @@ test("basic functionality", () => {
|
|||
|
||||
expect(count).toBe(0);
|
||||
|
||||
const target = registerInDifferentScope(registry);
|
||||
markAsGarbage("target");
|
||||
registerInDifferentScope(registry);
|
||||
gc();
|
||||
|
||||
registry.cleanupSome(increment);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue