Updating these is required for movable objects. There are two types of pointers we are looking at: (1) The specificValue properties in PropertyMapHashTable (2) The structures's prototype It is slightly more complicated than simply marking these properties on each object's structures since each structure is part of a tree. We need to mark both the pointers linked to by m_previous as well as the structure transition table. In order not to fully visit each structure graph more than once per garbage collection, I suggest adding an additional bit to the structure class that denotes an alternating color used to determine whether or not that structure has been visited on that particular collection. The specificValue properties in PropertyMapHashTable can be replaced by WeakGCPtr's which avoids us needing to update those particular values, however there is still a few percent overhead in needing to visit the whole structure graph. It may make sense to have a ref-counted indirect pointer to the prototype that is shared between all structures in the graph.
As of bug#58483 we mark all cells referenced from Structures. *** This bug has been marked as a duplicate of bug 58483 ***