Module script::dom::bindings::weakref

source ·
Expand description

Weak-referenceable JS-managed DOM objects.

IDL interfaces marked as weakReferenceable in Bindings.conf automatically implement the WeakReferenceable trait in codegen. The instance object is responsible for setting None in its own own WeakBox when it is collected, through the DOM_WEAK_SLOT slot. When all associated WeakRef values are dropped, the WeakBox itself is dropped too.


  • A mutable weak reference to a JS-managed DOM object. On tracing, the contained weak reference is dropped if the pointee was already collected.
  • The inner box of weak references, public for the finalization in codegen.
  • A weak reference to a JS-managed DOM object.
  • An entry of a vector of weak references. Passed to the closure given to WeakRefVec::update.
  • A vector of weak references. On tracing, the vector retains only references which still point to live objects.


  • The index of the slot wherein a pointer to the weak holder cell is stored for weak-referenceable bindings. We use slot 1 for holding it, this is unsafe for globals, we disallow weak-referenceable globals directly in codegen.