1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 23:27:43 +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:
Idan Horowitz 2021-06-09 20:10:47 +03:00 committed by Linus Groh
parent fb63aeae4d
commit a00d154522
7 changed files with 62 additions and 3 deletions

View file

@ -14,3 +14,13 @@ test("invalid values", () => {
}).toThrowWithMessage(TypeError, "is not an object");
});
});
test("automatic removal of garbage-collected values", () => {
const weakSet = new WeakSet();
{
expect(weakSet.add({ a: 1 })).toBe(weakSet);
expect(getWeakSetSize(weakSet)).toBe(1);
}
gc();
expect(getWeakSetSize(weakSet)).toBe(0);
});