// Make sure new script properties can be invalidated on specialized prototype // types while they are still being constructed. function Foo(a, b, c) { this.x = a + b; this.y = c; } updated = false; var o = {valueOf: function() { Object.defineProperty(Object.prototype, 'y', {set:function() { updated = true; }}) }}; function Bar() {} Bar.prototype = new Foo(o, 1, 2); assertEq(updated, true); assertEq(Bar.prototype.y, undefined);