For example, if you had some megamorphic over keys get by val, you could instead have inline caches hanging off each key. For each key, the code might be monomorphic or polymorphic in terms of what structures are seen. This is helpful for things like a get by val or put by val when iterating a list of keys of an object. For example, a for-in loop, or iterating over Object.keys, etc.
Created attachment 431694 [details] WIP Not gonna do this now, but just dropping in a wip
<rdar://problem/79510415>