diff --git a/packages/babel-helpers/src/helpers.ts b/packages/babel-helpers/src/helpers.ts index b288be59b933..0753100ef98c 100644 --- a/packages/babel-helpers/src/helpers.ts +++ b/packages/babel-helpers/src/helpers.ts @@ -223,6 +223,7 @@ helpers.createClass = helper("7.0.0-beta.0")` export default function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", {}); return Constructor; } `; diff --git a/packages/babel-plugin-transform-classes/test/fixtures/exec/prototype-descriptor.js b/packages/babel-plugin-transform-classes/test/fixtures/exec/prototype-descriptor.js new file mode 100644 index 000000000000..6a542c15103c --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/exec/prototype-descriptor.js @@ -0,0 +1,16 @@ +class A {} +class B extends A {} + +expect(Object.getOwnPropertyDescriptor(A, "prototype")).toEqual({ + value: A.prototype, + configurable: false, + enumerable: false, + writable: false, +}); + +expect(Object.getOwnPropertyDescriptor(B, "prototype")).toEqual({ + value: A.prototype, + configurable: false, + enumerable: false, + writable: false, +});