* SUMMARY For Objects it is very useful to know the constructor. If the prototype has been modified and loses constructor the Console may show misleading values. We should do a better job here. * TEST <script> function BottomLevel() { this._bottom = Math.random(); } function TopLevel() { BottomLevel.call(this); this._top = Math.random(); } TopLevel.prototype = {} // Comment this out to get desired result TopLevel.prototype.__proto__ = BottomLevel.prototype; var x = new TopLevel; console.log(x); // => BottomLevel, because x.constructor => BottomLevel. </script> * STEPS TO REPRODUCE 1. Inspect test above => Console labels "x" a "BottomLevel" object => Expected to see "TopLevel" object, since that was the constructor * NOTES - Settings constructor on TopLevel fixes the issue - Chrome shows "TopLevel" with/without prototype.constructor being set.
<rdar://problem/19281496>
<rdar://problem/19281616>