Currently, when a programmer changes the prototype of their object we allocate a new structure every time even if they use the same prototype every time. Not only does this use linear additional memory if they do it to every object they allocate but it also perniciously causes all the code these objects touch to become megamorphic.
Whoever looks at this should consider fixing caching the structure for bound functions when the prototype is null.