Consider the following code: function foo() function Bar(x) { this.x = x; } return new Bar(1); } Every time foo() is called the returned value will have a different prototype. At some point, probably the second time we construct a new Bar() we should convert the structure into a new one that instead indicates we should get the prototype off the object itself rather than off the structure. This would prevent inline caches from becoming megamorphic.
*** This bug has been marked as a duplicate of bug 176391 ***