RHash isn't a good fit for storing `cdhash` as this force to allow arbitrary hash types into RHash, which doesn't work with AR tables. It also cause the cdhash to be larger than needed.byroot (Jean Boussier)
Now that they're no longer a RHash instance, we don't have to box the offsets, we can directly srore the raw values, and stop marking them.byroot (Jean Boussier)
Same optimization that was applied to `set_table` in 85c52079aa35a1d2e063a5b40eebe91701c8cb9e This saves one pointer per `st_table`. Now that GC support 64B slots, if we can save another 8B either in `st_table` or in `struct RHash`, has...byroot (Jean Boussier)
That API made sense before b00f280d4b9569e7153365d7e1c522b3d6b3c6cf as finding a module name was costly, but it now is a very cheap operation, and that function is now just an outdated alias.byroot (Jean Boussier)
This couldn't possibly lead to a crash unless you'd mess with GC.stress or `send(:initialize)` on an old object. But for correctness, it should be there. https://github.com/ruby/json/commit/ab6972d797byroot (Jean Boussier)