Hi.

I found reproducible problem with forwardBecome. It exists on Pharo and Squeak. For Pharo we get issue��17536.

Try to execute following script:

obj1 :=��20@10.
obj2 :=��50@30.

weak := WeakValueAssociation new.
weak key: obj1..��

obj1 becomeForward: obj2.
Smalltalk garbageCollect.
weak key class. "-> SmallInteger. If you try to print 'weak key' image will crash"


Lines with become and garbage collection should be executed together. Instead anything is working correctly. So it is��somehow related to stack state.

Interesting that WeakArray is working correctly. Try script with
weak := WeakArray new: 1.��
weak at: 1 put: obj1.

Best regards,
Denis