"use strict"; let Base = /*#__PURE__*/function () { function Base() { babelHelpers.classCallCheck(this, Base); } babelHelpers.createClass(Base, [{ key: "test", get: function () { return 1; } }]); return Base; }(); ; let Obj = /*#__PURE__*/function (_Base) { babelHelpers.inherits(Obj, _Base); var _super = babelHelpers.createSuper(Obj); function Obj() { babelHelpers.classCallCheck(this, Obj); return _super.apply(this, arguments); } babelHelpers.createClass(Obj, [{ key: "set", value: function set() { return babelHelpers.set(babelHelpers.getPrototypeOf(Obj.prototype), "test", 3, this, true); } }]); return Obj; }(Base); Object.defineProperty(Obj.prototype, 'test', { value: 2, writable: true, configurable: true }); const obj = new Obj(); expect(() => { // this requires helpers to be in file (not external), so they // are in "strict" mode code. obj.set(); }).toThrow(); expect(Base.prototype.test).toBe(1); expect(Obj.prototype.test).toBe(2); expect(obj.test).toBe(2);