A WeakPtr without an reactor is just an unregistered Java WeakReference.
A WeakPtr with an reactor also has the additional behavior of doing

reactor <- run()

when the referent gets GCed.

Confined E code must not be given access to weak references of any kind,
as that would expose them to GC timing non-determinism. This
non-determinism can be logged, so it doesn't threaten replay, but it
would enable a confined Bob to read a covert channel written by Mallet,
and so enable Bob to receive instructions from Mallet.