Why not applying the same process for `originalClassRef.prototype` and `originalClassClassDef.$prototype`?
Which means: deleting all (own) properties on the object, and then copying (own) properties from the reloaded corresponding object, so that we keep the same object.
Now, what about statics?