We were using `Object.create` to setup the prototype chain at the start of the class definition, which lead to #7771. I was a bit worried about a speed hit, but it seems everyone optimizes the two patterns the same way. https://jsbench.github.io/#f9fca52407643d96458a35763b201215 Fixes #7771.
39 lines
711 B
JavaScript
39 lines
711 B
JavaScript
var Base =
|
|
/*#__PURE__*/
|
|
function () {
|
|
"use strict";
|
|
|
|
function Base() {
|
|
babelHelpers.classCallCheck(this, Base);
|
|
}
|
|
|
|
babelHelpers.createClass(Base, [{
|
|
key: "test",
|
|
get: function get() {}
|
|
}]);
|
|
return Base;
|
|
}();
|
|
|
|
var Sub =
|
|
/*#__PURE__*/
|
|
function (_Base) {
|
|
"use strict";
|
|
|
|
function Sub() {
|
|
babelHelpers.classCallCheck(this, Sub);
|
|
return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Sub).apply(this, arguments));
|
|
}
|
|
|
|
babelHelpers.createClass(Sub, [{
|
|
key: "test",
|
|
// Redefining method here
|
|
value: function test() {
|
|
return 1;
|
|
}
|
|
}]);
|
|
babelHelpers.inherits(Sub, _Base);
|
|
return Sub;
|
|
}(Base);
|
|
|
|
expect(new Sub().test()).toBe(1);
|