On Mon Mar 2 21:10:11 2026 +0000, Gabriel Ivăncescu wrote:
Oh I see the confusion. No, the GC supplies the CC with edge info so the CC knows as well, it just doesn't supply it with a real "refcount" per object (since it doesn't have one anyway). That is, all edges from the GC (all JS objects) are known to the CC, and all JS objects are treated as if they had an extra external ref to themselves (so that the CC cannot clean them up). Does that clear things up? Of course this is only for reachable JS objects. If the JS object is gray (non-reachable from JS) then it's treated as having no extra refcount at all so that the CC will clean up/unlink its XPCOM objects if suitable (it doesn't clean up JS objects regardless of their color).
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10045#note_131000