Turns out the configure check for `objc_constructInstance` was broken, and hence `runtime/instance.m` was used for `objc_destructInstance` instead of the runtime's, resulting in weak references not being handled on dealloc.

Fixed in [](4c16806252).