* Update super property get/set/call in loose mode Follows the plan laid out in https://github.com/babel/babel/pull/7553#issuecomment-381434519. With #7691, this closes #7553, closes #4312. * Post #7772 * Memoized property
35 lines
723 B
JavaScript
35 lines
723 B
JavaScript
"use strict";
|
|
|
|
function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; }
|
|
|
|
let Base = function Base() {};
|
|
|
|
let Obj =
|
|
/*#__PURE__*/
|
|
function (_Base) {
|
|
function Obj() {
|
|
return _Base.apply(this, arguments) || this;
|
|
}
|
|
|
|
var _proto = Obj.prototype;
|
|
|
|
_proto.set = function set() {
|
|
return this.test = 3;
|
|
};
|
|
|
|
_inheritsLoose(Obj, _Base);
|
|
|
|
return Obj;
|
|
}(Base);
|
|
|
|
Object.defineProperty(Obj.prototype, 'test', {
|
|
value: 2,
|
|
writable: true,
|
|
configurable: true
|
|
});
|
|
const obj = new Obj();
|
|
expect(obj.set()).toBe(3);
|
|
expect(Base.prototype.test).toBeUndefined();
|
|
expect(Obj.prototype.test).toBe(2);
|
|
expect(obj.test).toBe(3);
|