var createDOMJITGetterBaseJSObject = $vm.createDOMJITGetterBaseJSObject; function assert(b, m) { if (!b) throw new Error("Bad:" + m); } function makePolyProtoObject() { function foo() { class C { constructor() { this._field = 25; } }; return new C; } for (let i = 0; i < 15; ++i) foo(); return foo(); } let proto = createDOMJITGetterBaseJSObject(); let obj = makePolyProtoObject(); obj.__proto__ = proto; function validate(x, v) { assert(x.customGetter === v, x.customGetter); } noInline(validate); for (let i = 0; i < 1000; ++i) validate(obj, proto); proto.foo = 25; for (let i = 0; i < 1000; ++i) validate(obj, proto); Reflect.setPrototypeOf(obj, {}); for (let i = 0; i < 1000; ++i) { validate(obj, undefined); }