wentout c59870c526
Mark class prototype as read-only (#12115)
* initial code 2 fix the issue #2025

* Mark class prototype as read-only

* Update fixtures

* Fix failure

* Update Babel 8 fixtures

* Disable in loose mode

* Update fixtures

Co-authored-by: Nicolò Ribaudo <nicolo.ribaudo@gmail.com>
2021-12-10 21:44:48 +01:00

39 lines
885 B
JavaScript

"use strict";
let Base = /*#__PURE__*/babelHelpers.createClass(function Base() {
babelHelpers.classCallCheck(this, Base);
});
let value = 2;
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: "test",
set: function (v) {
expect(this).toBe(obj);
value = v;
}
}, {
key: "set",
value: function set() {
return babelHelpers.set(babelHelpers.getPrototypeOf(Obj.prototype), "test", 3, this, true);
}
}]);
return Obj;
}(Base);
const obj = new Obj();
expect(obj.set()).toBe(3);
expect(Base.prototype.test).toBeUndefined();
expect(Obj.prototype.test).toBeUndefined();
expect(value).toBe(2);
expect(obj.test).toBe(3);