michael@0: function A() {}; michael@0: A.prototype = []; michael@0: michael@0: function B() {}; michael@0: B.prototype = new A(); michael@0: michael@0: function C() {}; michael@0: C.prototype = new B(); michael@0: michael@0: function D() {}; michael@0: D.prototype = new C(); michael@0: michael@0: function E() {}; michael@0: E.prototype = new D(); michael@0: michael@0: function f() { michael@0: var o = new B(); michael@0: for (var i=0; i<10; i++) michael@0: o[i] = i; michael@0: michael@0: var expected = '{"0":0,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9}'; michael@0: assertEq(JSON.stringify(o), expected); michael@0: michael@0: var o = new A(); michael@0: for (var i=0; i<10; i++) michael@0: o[i] = i; michael@0: michael@0: assertEq(JSON.stringify(o), expected); michael@0: michael@0: var o = new D(); michael@0: for (var i=0; i<10; i++) michael@0: o[i] = i; michael@0: michael@0: assertEq(JSON.stringify(o), expected); michael@0: michael@0: var o = new E(); michael@0: for (var i=0; i<10; i++) michael@0: o[i] = i; michael@0: michael@0: assertEq(JSON.stringify(o), expected); michael@0: } michael@0: f();