Tx! This makes a lot of code much simpler and faster (the usual speed/ complexity/memory tradeoff).
Equally important, the method class normalizes the format of CompiledMethod with respect to method properties. Before adding the method class for each method, methods with super-sends would store their properties in the next-to-last literal, those without in the last. Which is a pain to maintain. Plus, there are some situations where the ability to reason about the origin of a loose compiled method (e.g., one not stored in any method dictionary due to recompilation) is critical for being able to persist them correctly (like when you try to determine whether that compiled method will crash your system after loading it back in since it accesses iVars beyond the end of the object). All in all, I'm a big fan of these particular changes - they make many things trivial that would be somewhere between hard to near impossible otherwise. At the cost of four (if you could method properties eight) bytes per compiled method which -to me- seems a reasonable tradeoff in this case.