From 2af7a33c4e41d6f45daf84a366e80757ad7d4d81 Mon Sep 17 00:00:00 2001 From: Justin Ridgewell Date: Wed, 23 May 2018 16:21:21 -0400 Subject: [PATCH] Fix class inheritance in IE10 (#7969) * Revert "Move subclass inheritance to end (#7772)" This reverts commit f8ab9466d331871a90f458af40b14e8d831e0c29. * Only use getPrototypeOf if setPrototypeOf is implemented * Update fixtures * Helpers updates * Update fixtures * Fall back to getPrototypeOf * Update fixtures --- .../misc/regression-1155/output.js | 3 +- packages/babel-helpers/src/helpers.js | 19 +++++++--- .../nested-class/super-call-in-key/output.js | 3 +- .../super-property-in-key/output.js | 3 +- .../derived-multiple-supers/output.js | 3 +- .../fixtures/private-loose/derived/output.js | 3 +- .../fixtures/private-loose/foobar/output.js | 3 +- .../private-in-derived/output.js | 3 +- .../private-loose/super-expression/output.js | 3 +- .../private-loose/super-statement/output.js | 3 +- .../private/derived-multiple-supers/output.js | 3 +- .../test/fixtures/private/derived/output.js | 3 +- .../test/fixtures/private/foobar/output.js | 3 +- .../private/private-in-derived/output.js | 3 +- .../fixtures/private/super-call/output.js | 3 +- .../private/super-expression/output.js | 3 +- .../private/super-statement/output.js | 3 +- .../fixtures/public-loose/derived/output.js | 3 +- .../fixtures/public-loose/foobar/output.js | 3 +- .../public-loose/regression-T6719/output.js | 3 +- .../public-loose/super-call/output.js | 3 +- .../public-loose/super-expression/output.js | 3 +- .../public-loose/super-statement/output.js | 3 +- .../public/derived-multiple-supers/output.js | 3 +- .../test/fixtures/public/derived/output.js | 3 +- .../test/fixtures/public/foobar/output.js | 3 +- .../public/regression-T6719/output.js | 3 +- .../test/fixtures/public/super-call/output.js | 3 +- .../public/super-expression/output.js | 3 +- .../fixtures/public/super-statement/output.js | 3 +- .../test/fixtures/regression/6154/output.js | 12 +++--- .../test/fixtures/regression/T6719/output.js | 3 +- .../fixtures/legacy-regression/7030/output.js | 14 +++---- .../src/transformClass.js | 9 +++-- .../fixtures/extend-builtins/loose/output.js | 8 ++-- .../extend-builtins/shadowed/output.js | 3 +- .../fixtures/extend-builtins/spec/output.js | 10 ++--- .../output.js | 6 +-- .../exec.js | 9 +++-- .../output.js | 6 +-- .../output.js | 6 +-- .../exec.js | 9 +++-- .../output.js | 6 +-- .../output.js | 6 +-- .../output.js | 6 +-- .../output.js | 6 +-- .../output.js | 6 +-- .../get-set-loose/memoized-assign/output.js | 6 +-- .../get-set-loose/memoized-update/output.js | 6 +-- .../output.js | 6 +-- .../output.js | 6 +-- .../output.js | 6 +-- .../output.js | 8 ++-- .../output.js | 6 +-- .../output.js | 8 ++-- .../output.js | 6 +-- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../get-set/memoized-assign/output.js | 14 +++---- .../get-set/memoized-update/output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 14 +++---- .../with-superClass/output.js | 8 ++-- .../loose/accessing-super-class/output.js | 3 +- .../accessing-super-properties/output.js | 3 +- .../loose/calling-super-properties/output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../exec.js | 14 ------- .../input.js | 14 ------- .../output.js | 35 ----------------- .../output.js | 6 ++- .../test/fixtures/loose/super-class/output.js | 3 +- .../test/fixtures/regression/2663/output.js | 3 +- .../test/fixtures/regression/2694/output.js | 3 +- .../test/fixtures/regression/2775/output.js | 3 +- .../test/fixtures/regression/3028/output.js | 6 ++- .../test/fixtures/regression/5769/output.js | 3 +- .../test/fixtures/regression/5817/output.js | 3 +- .../test/fixtures/regression/T2494/output.js | 3 +- .../test/fixtures/regression/T2997/output.js | 3 +- .../test/fixtures/regression/T7537/output.js | 14 +++---- .../spec/accessing-super-class/output.js | 3 +- .../spec/accessing-super-properties/output.js | 3 +- .../spec/calling-super-properties/output.js | 3 +- .../test/fixtures/spec/constructor/output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../spec/export-super-class/output.mjs | 3 +- .../nested-class-super-call-in-key/output.js | 3 +- .../output.js | 3 +- .../nested-object-super-call-in-key/output.js | 3 +- .../output.js | 3 +- .../exec.js | 14 ------- .../input.js | 14 ------- .../output.js | 38 ------------------- .../spec/super-class-anonymous/output.js | 15 +++++--- .../output.js | 6 ++- .../test/fixtures/spec/super-class/output.js | 3 +- .../output.js | 14 +++---- .../output.js | 14 +++---- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../output.js | 3 +- .../test/fixtures/regression/4349/output.js | 2 +- .../function-name/modules-3/output.js | 3 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../output.js | 2 +- .../super-exponentiation/output.js | 2 +- .../parameters/rest-nested-iife/output.js | 3 +- .../regression/6057-expanded/output.js | 14 +++---- .../output.js | 3 +- .../useBuiltIns-useESModules/output.js | 8 ++-- .../use-options/useBuiltIns/output.js | 8 ++-- .../use-options/useESModules/output.js | 8 ++-- .../plugins-integration/issue-7527/output.js | 10 ++--- 151 files changed, 461 insertions(+), 487 deletions(-) delete mode 100644 packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/exec.js delete mode 100644 packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/input.js delete mode 100644 packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/output.js delete mode 100644 packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/exec.js delete mode 100644 packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/input.js delete mode 100644 packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/output.js diff --git a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js index 8d081fa497..78220af85d 100644 --- a/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js +++ b/packages/babel-core/test/fixtures/transformation/misc/regression-1155/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo(options) { babelHelpers.classCallCheck(this, Foo); var parentOptions = {}; @@ -14,6 +16,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this, parentOptions)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-helpers/src/helpers.js b/packages/babel-helpers/src/helpers.js index 122cc01485..382545a6fd 100644 --- a/packages/babel-helpers/src/helpers.js +++ b/packages/babel-helpers/src/helpers.js @@ -399,23 +399,32 @@ helpers.inherits = () => template.program.ast` if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } - setPrototypeOf(subClass.prototype, superClass && superClass.prototype); + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); if (superClass) setPrototypeOf(subClass, superClass); } `; helpers.inheritsLoose = () => template.program.ast` export default function _inheritsLoose(subClass, superClass) { - subClass.prototype.__proto__ = superClass && superClass.prototype; + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } `; helpers.getPrototypeOf = () => template.program.ast` export default function _getPrototypeOf(o) { - _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { - return o.__proto__; - }; + _getPrototypeOf = Object.setPrototypeOf + ? Object.getPrototypeOf + : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; return _getPrototypeOf(o); } `; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-call-in-key/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-call-in-key/output.js index f09332387a..2ded153f1e 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-call-in-key/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-call-in-key/output.js @@ -13,6 +13,8 @@ let Hello = function Hello() { let Outer = /*#__PURE__*/ function (_Hello) { + babelHelpers.inherits(Outer, _Hello); + function Outer() { var _this; @@ -28,7 +30,6 @@ function (_Hello) { return babelHelpers.possibleConstructorReturn(_this, new Inner()); } - babelHelpers.inherits(Outer, _Hello); return Outer; }(Hello); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-property-in-key/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-property-in-key/output.js index 196dd8b867..6df7880cd3 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-property-in-key/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/nested-class/super-property-in-key/output.js @@ -19,6 +19,8 @@ function () { let Outer = /*#__PURE__*/ function (_Hello) { + babelHelpers.inherits(Outer, _Hello); + function Outer() { var _this; @@ -35,7 +37,6 @@ function (_Hello) { return babelHelpers.possibleConstructorReturn(_this, new Inner()); } - babelHelpers.inherits(Outer, _Hello); return Outer; }(Hello); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived-multiple-supers/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived-multiple-supers/output.js index d2b6a8fb88..c6f6c9ecc3 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived-multiple-supers/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived-multiple-supers/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -25,7 +27,6 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived/output.js index 5eb8b76e9c..86e380442d 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/derived/output.js @@ -15,6 +15,8 @@ var Bar = function (_Foo) { "use strict"; + babelHelpers.inherits(Bar, _Foo); + function Bar(...args) { var _temp, _this; @@ -25,7 +27,6 @@ function (_Foo) { }), _temp)); } - babelHelpers.inherits(Bar, _Foo); return Bar; }(Foo); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/output.js index 8dc9f1f2a3..d4a49a383c 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/foobar/output.js @@ -3,6 +3,8 @@ var Child = function (_Parent) { "use strict"; + babelHelpers.inherits(Child, _Parent); + function Child() { var _this; @@ -17,7 +19,6 @@ function (_Parent) { return _this; } - babelHelpers.inherits(Child, _Parent); return Child; }(Parent); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/private-in-derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/private-in-derived/output.js index 39a984b0e8..5cdb57084a 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/private-in-derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/private-in-derived/output.js @@ -10,12 +10,13 @@ var Outer = function Outer() { var Test = /*#__PURE__*/ function (_babelHelpers$classPr) { + babelHelpers.inherits(Test, _babelHelpers$classPr); + function Test() { babelHelpers.classCallCheck(this, Test); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Test).apply(this, arguments)); } - babelHelpers.inherits(Test, _babelHelpers$classPr); return Test; }(babelHelpers.classPrivateFieldLooseBase(this, _outer)[_outer]); }; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-expression/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-expression/output.js index d00fe5e1a0..a21817fed2 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-expression/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-expression/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _temp, _this; @@ -14,7 +16,6 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-statement/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-statement/output.js index b4aaadf736..bf1561a9da 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-statement/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private-loose/super-statement/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -15,7 +17,6 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js index bcdd59a906..3b8c665873 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived-multiple-supers/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -21,7 +23,6 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js index 82a177fb33..3463059bee 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/derived/output.js @@ -13,6 +13,8 @@ var Bar = function (_Foo) { "use strict"; + babelHelpers.inherits(Bar, _Foo); + function Bar(...args) { var _temp, _this; @@ -20,7 +22,6 @@ function (_Foo) { return babelHelpers.possibleConstructorReturn(_this, (_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Bar).call(this, ...args)), _prop2.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), "bar"), _temp)); } - babelHelpers.inherits(Bar, _Foo); return Bar; }(Foo); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js index 3c1a891774..efe70074ff 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/foobar/output.js @@ -3,6 +3,8 @@ var Child = function (_Parent) { "use strict"; + babelHelpers.inherits(Child, _Parent); + function Child() { var _this; @@ -16,7 +18,6 @@ function (_Parent) { return _this; } - babelHelpers.inherits(Child, _Parent); return Child; }(Parent); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js index beeacf11ce..8f7b2ea3ad 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/private-in-derived/output.js @@ -8,12 +8,13 @@ var Outer = function Outer() { var Test = /*#__PURE__*/ function (_babelHelpers$classPr) { + babelHelpers.inherits(Test, _babelHelpers$classPr); + function Test() { babelHelpers.classCallCheck(this, Test); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Test).apply(this, arguments)); } - babelHelpers.inherits(Test, _babelHelpers$classPr); return Test; }(babelHelpers.classPrivateFieldGet(this, _outer)); }; diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js index f036cceacd..7ccddf4222 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-call/output.js @@ -21,6 +21,8 @@ var B = function (_A) { "use strict"; + babelHelpers.inherits(B, _A); + function B(...args) { var _temp, _this; @@ -28,7 +30,6 @@ function (_A) { return babelHelpers.possibleConstructorReturn(_this, (_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(B).call(this, ...args)), _foo.set(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), babelHelpers.get(babelHelpers.getPrototypeOf(B.prototype), "foo", babelHelpers.assertThisInitialized(_this)).call(babelHelpers.assertThisInitialized(_this))), _temp)); } - babelHelpers.inherits(B, _A); return B; }(A); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js index 5cef63bf76..9884d2534a 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-expression/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _temp, _this; @@ -11,7 +13,6 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js index 3d03522a31..4221053b3f 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/private/super-statement/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -14,7 +16,6 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/derived/output.js index b52b457847..c4ec254b61 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/derived/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo(...args) { var _temp, _this; @@ -10,6 +12,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this, (_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this, ...args)), _this.bar = "foo", _temp)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/output.js index dcaa61683b..3f43d7eb0f 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/foobar/output.js @@ -3,6 +3,8 @@ var Child = function (_Parent) { "use strict"; + babelHelpers.inherits(Child, _Parent); + function Child() { var _this; @@ -16,6 +18,5 @@ function (_Parent) { return _this; } - babelHelpers.inherits(Child, _Parent); return Child; }(Parent); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T6719/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T6719/output.js index b8695c3597..f8aebbe026 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T6719/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/regression-T6719/output.js @@ -6,12 +6,13 @@ function withContext(ComposedComponent) { function (_Component) { "use strict"; + babelHelpers.inherits(WithContext, _Component); + function WithContext() { babelHelpers.classCallCheck(this, WithContext); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(WithContext).apply(this, arguments)); } - babelHelpers.inherits(WithContext, _Component); return WithContext; }(Component), _class.propTypes = { context: PropTypes.shape({ diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-call/output.js index 6f7c714b2c..ce4e6fb6cf 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-call/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-call/output.js @@ -21,6 +21,8 @@ var B = function (_A) { "use strict"; + babelHelpers.inherits(B, _A); + function B(...args) { var _temp, _this; @@ -28,6 +30,5 @@ function (_A) { return babelHelpers.possibleConstructorReturn(_this, (_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(B).call(this, ...args)), _this.foo = babelHelpers.get(babelHelpers.getPrototypeOf(B.prototype), "foo", babelHelpers.assertThisInitialized(_this)).call(babelHelpers.assertThisInitialized(_this)), _temp)); } - babelHelpers.inherits(B, _A); return B; }(A); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-expression/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-expression/output.js index 062b449e94..d682e4a6ed 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-expression/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-expression/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _temp, _this; @@ -11,6 +13,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-statement/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-statement/output.js index 401db63623..c63a614d02 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-statement/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public-loose/super-statement/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -12,6 +14,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived-multiple-supers/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived-multiple-supers/output.js index ee3a2517eb..7b4d565978 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived-multiple-supers/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived-multiple-supers/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -19,6 +21,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived/output.js index b96ba236a9..2e10b065cc 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/derived/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo(...args) { var _temp, _this; @@ -10,6 +12,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this, (_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this, ...args)), babelHelpers.defineProperty(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), "bar", "foo"), _temp)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/output.js index 27d0e760f3..beb7b9f196 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/foobar/output.js @@ -3,6 +3,8 @@ var Child = function (_Parent) { "use strict"; + babelHelpers.inherits(Child, _Parent); + function Child() { var _this; @@ -14,6 +16,5 @@ function (_Parent) { return _this; } - babelHelpers.inherits(Child, _Parent); return Child; }(Parent); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/regression-T6719/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/regression-T6719/output.js index a8144c152f..4e17608440 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/regression-T6719/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/regression-T6719/output.js @@ -6,12 +6,13 @@ function withContext(ComposedComponent) { function (_Component) { "use strict"; + babelHelpers.inherits(WithContext, _Component); + function WithContext() { babelHelpers.classCallCheck(this, WithContext); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(WithContext).apply(this, arguments)); } - babelHelpers.inherits(WithContext, _Component); return WithContext; }(Component), babelHelpers.defineProperty(_class, "propTypes", { context: PropTypes.shape({ diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-call/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-call/output.js index 20943983c1..9f91f395a2 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-call/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-call/output.js @@ -21,6 +21,8 @@ var B = function (_A) { "use strict"; + babelHelpers.inherits(B, _A); + function B(...args) { var _temp, _this; @@ -28,6 +30,5 @@ function (_A) { return babelHelpers.possibleConstructorReturn(_this, (_temp = _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(B).call(this, ...args)), babelHelpers.defineProperty(babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)), "foo", babelHelpers.get(babelHelpers.getPrototypeOf(B.prototype), "foo", babelHelpers.assertThisInitialized(_this)).call(babelHelpers.assertThisInitialized(_this))), _temp)); } - babelHelpers.inherits(B, _A); return B; }(A); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-expression/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-expression/output.js index 93f3ec311f..a2eab2f89b 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-expression/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-expression/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _temp, _this; @@ -11,6 +13,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-statement/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-statement/output.js index 5c58c076c0..be84c76145 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-statement/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-statement/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -12,6 +14,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/output.js index 78d74f4783..fd23e1e4e2 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/6154/output.js @@ -2,12 +2,12 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); } else { return left instanceof right; } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } @@ -18,7 +18,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Test = function Test() { "use strict"; @@ -30,6 +30,8 @@ var Test = function Test() { var Other = /*#__PURE__*/ function (_Test) { + _inherits(Other, _Test); + function Other() { var _getPrototypeOf2; @@ -46,8 +48,6 @@ var Test = function Test() { }), _temp)); } - _inherits(Other, _Test); - return Other; }(Test); diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/output.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/output.js index b8695c3597..f8aebbe026 100644 --- a/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/output.js +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/regression/T6719/output.js @@ -6,12 +6,13 @@ function withContext(ComposedComponent) { function (_Component) { "use strict"; + babelHelpers.inherits(WithContext, _Component); + function WithContext() { babelHelpers.classCallCheck(this, WithContext); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(WithContext).apply(this, arguments)); } - babelHelpers.inherits(WithContext, _Component); return WithContext; }(Component), _class.propTypes = { context: PropTypes.shape({ diff --git a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/output.js b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/output.js index 766b66dff3..806c12fd82 100644 --- a/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/output.js +++ b/packages/babel-plugin-proposal-decorators/test/fixtures/legacy-regression/7030/output.js @@ -4,15 +4,15 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function generateAsyncAction(type) { type = type.toUpperCase(); @@ -32,6 +32,8 @@ var A = function (_B) { "use strict"; + _inherits(A, _B); + function A(timestamp) { var _this; @@ -43,7 +45,5 @@ function (_B) { return _this; } - _inherits(A, _B); - return A; }(B); diff --git a/packages/babel-plugin-transform-classes/src/transformClass.js b/packages/babel-plugin-transform-classes/src/transformClass.js index 8d3ca6cfe0..6684775023 100644 --- a/packages/babel-plugin-transform-classes/src/transformClass.js +++ b/packages/babel-plugin-transform-classes/src/transformClass.js @@ -179,7 +179,6 @@ export default function transformClass( } pushDescriptors(); - pushInheritsToBody(); } function pushBody() { @@ -263,6 +262,8 @@ export default function transformClass( } function pushDescriptors() { + pushInheritsToBody(); + const { body } = classState; let instanceProps; @@ -572,6 +573,8 @@ export default function transformClass( } classState.body.push(classState.construct); + + pushInheritsToBody(); } /** @@ -582,9 +585,9 @@ export default function transformClass( setState({ pushedInherits: true }); - // Push to ensure that the constructor inheritance is set up after + // Unshift to ensure that the constructor inheritance is set up before // any properties can be assigned to the prototype. - classState.body.push( + classState.body.unshift( t.expressionStatement( t.callExpression( classState.file.addHelper( diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js index d94f44e01c..dbe4978d71 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/loose/output.js @@ -1,4 +1,4 @@ -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } @@ -8,18 +8,18 @@ function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _co function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var List = /*#__PURE__*/ function (_Array) { "use strict"; + _inheritsLoose(List, _Array); + function List() { return _Array.apply(this, arguments) || this; } - _inheritsLoose(List, _Array); - return List; }(_wrapNativeSuper(Array)); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/shadowed/output.js b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/shadowed/output.js index 952ccd63ca..dae6970860 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/shadowed/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/shadowed/output.js @@ -9,11 +9,12 @@ let List = function (_Array) { "use strict"; + babelHelpers.inherits(List, _Array); + function List() { babelHelpers.classCallCheck(this, List); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(List).apply(this, arguments)); } - babelHelpers.inherits(List, _Array); return List; }(Array); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js index b6dc15272a..d060a29402 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/extend-builtins/spec/output.js @@ -1,11 +1,11 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } @@ -14,20 +14,20 @@ function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _co function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var List = /*#__PURE__*/ function (_Array) { "use strict"; + _inherits(List, _Array); + function List() { _classCallCheck(this, List); return _possibleConstructorReturn(this, _getPrototypeOf(List).apply(this, arguments)); } - _inherits(List, _Array); - return List; }(_wrapNativeSuper(Array)); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-data-defined-on-parent/output.js index ae36d3d2a7..ee6d7888aa 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-data-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = /*#__PURE__*/ @@ -21,6 +21,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -41,8 +43,6 @@ function (_Base) { throw new Error("called"); }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/exec.js index c7139df28b..8cab2cb57c 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/exec.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/exec.js @@ -20,11 +20,14 @@ class Obj extends Base { super.test(...[1, 2, 3]); return super.test(...arguments); } - - test() { +} +Object.defineProperty(Obj.prototype, 'test', { + writable: true, + configurable: true, + value() { throw new Error("called"); } -} +}); const obj = new Obj(); expect(obj.call(1, 2, 3)).toBe(1); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/output.js index 2824c04351..e221a210b2 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-getter-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -31,6 +31,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -51,8 +53,6 @@ function (_Base) { throw new Error("called"); }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-not-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-not-defined-on-parent/output.js index 6f9f337e13..19a5133e9a 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-not-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-not-defined-on-parent/output.js @@ -1,12 +1,14 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -21,8 +23,6 @@ function (_Base) { throw new Error("gobbledygook"); }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/exec.js index 184778853f..10ebd1c496 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/exec.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/exec.js @@ -9,11 +9,14 @@ class Obj extends Base { call() { return super.test(); } - - test() { +} +Object.defineProperty(Obj.prototype, 'test', { + writable: true, + configurable: true, + value() { throw new Error("gobbledygook"); } -} +}); const obj = new Obj(); expect(() => { diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/output.js index a83c1b384c..002192c52d 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/call-semantics-setter-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -24,6 +24,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -38,8 +40,6 @@ function (_Base) { throw new Error("gobbledygook"); }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-data-defined-on-parent/output.js index 5a17f1cea7..9526f8a361 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-data-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; @@ -9,6 +9,8 @@ Base.prototype.test = 1; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -19,8 +21,6 @@ function (_Base) { return _Base.prototype.test; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-getter-defined-on-parent/output.js index e68392944e..36ab29407f 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-getter-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -27,6 +27,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -37,8 +39,6 @@ function (_Base) { return _Base.prototype.test; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-not-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-not-defined-on-parent/output.js index 9f2e940a4b..9880bfe113 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-not-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-not-defined-on-parent/output.js @@ -1,12 +1,14 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -17,8 +19,6 @@ function (_Base) { return _Base.prototype.test; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-setter-defined-on-parent/output.js index c6eae6269f..4e03f7e9fc 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/get-semantics-setter-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -24,6 +24,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -34,8 +36,6 @@ function (_Base) { return _Base.prototype.test; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-assign/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-assign/output.js index ea392256b2..1053632629 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-assign/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-assign/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; @@ -25,6 +25,8 @@ const proper = { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -43,8 +45,6 @@ function (_Base) { this[_i = i] = _Base.prototype[_i] + 1; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-update/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-update/output.js index 81e19c7b7e..eaeea288da 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-update/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/memoized-update/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; @@ -25,6 +25,8 @@ const proper = { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -43,8 +45,6 @@ function (_Base) { this[_i = i] = (_super$i = +_Base.prototype[_i]) + 1, _super$i; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-data-defined-on-parent/output.js index eeac9da0ae..498198dd54 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-data-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; @@ -13,6 +13,8 @@ Object.defineProperty(Base.prototype, 'test', { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -23,8 +25,6 @@ function (_Base) { return this.test = 3; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-getter-defined-on-parent/output.js index 95b7323824..27c87b6123 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-getter-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -29,6 +29,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -39,8 +41,6 @@ function (_Base) { return this.test = 3; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-data-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-data-on-obj/output.js index 9032cd8c5d..639eba6cc1 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-data-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-data-on-obj/output.js @@ -1,12 +1,14 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -17,8 +19,6 @@ function (_Base) { return this.test = 3; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-getter-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-getter-on-obj/output.js index 469af6ac4a..e66fd7e191 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-getter-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-getter-on-obj/output.js @@ -1,11 +1,11 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } + let Base = function Base() {}; let called = false; @@ -13,6 +13,8 @@ let called = false; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -30,8 +32,6 @@ function (_Base) { } }]); - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-not-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-not-on-obj/output.js index 740f625c11..c5cb38d3ef 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-not-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-not-on-obj/output.js @@ -1,12 +1,14 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } let Base = function Base() {}; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -17,8 +19,6 @@ function (_Base) { return this.test = 3; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-setter-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-setter-on-obj/output.js index 3fdea483c1..583f064e86 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-setter-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-not-defined-on-parent-setter-on-obj/output.js @@ -1,11 +1,11 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } + let Base = function Base() {}; let value = 2; @@ -13,6 +13,8 @@ let value = 2; let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -30,8 +32,6 @@ function (_Base) { } }]); - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-setter-defined-on-parent/output.js index 8cec605e4c..271a214803 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set-loose/set-semantics-setter-defined-on-parent/output.js @@ -1,6 +1,6 @@ "use strict"; -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } @@ -26,6 +26,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inheritsLoose(Obj, _Base); + function Obj() { return _Base.apply(this, arguments) || this; } @@ -36,8 +38,6 @@ function (_Base) { return this.test = 3; }; - _inheritsLoose(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-data-defined-on-parent/output.js index dbb3a5192f..b6ec2c9d20 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-data-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -12,7 +8,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -42,6 +42,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -66,8 +68,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-getter-defined-on-parent/output.js index a31f9975dd..1882922d30 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-getter-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -12,7 +8,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -45,6 +45,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -69,8 +71,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js index 97fc2b487f..ed3a319213 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-not-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -16,7 +12,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -27,6 +27,8 @@ let Base = function Base() { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -45,8 +47,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/output.js index face41d9ed..a5e95d1274 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/call-semantics-setter-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -12,7 +8,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -40,6 +40,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -58,8 +60,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js index 6b48987295..5ded4c810e 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -16,7 +12,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -29,6 +29,8 @@ Base.prototype.test = 1; let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -42,8 +44,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js index 0d4d745473..751f216066 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -12,7 +8,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -41,6 +41,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -54,8 +56,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js index 6b3416e068..790dc28d59 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -16,7 +12,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -27,6 +27,8 @@ let Base = function Base() { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -40,8 +42,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js index 45b558114a..3fb37ea4fa 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -12,7 +8,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -40,6 +40,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -53,8 +55,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-assign/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-assign/output.js index 67b99e2aca..53c5587ab5 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-assign/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-assign/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -22,7 +18,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -51,6 +51,8 @@ const proper = { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -73,8 +75,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-update/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-update/output.js index be41455cd3..6fbcdfc3f5 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-update/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/memoized-update/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -22,7 +18,11 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -51,6 +51,8 @@ const proper = { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -73,8 +75,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js index 9a1fc6f7a2..7a7af63a98 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -20,7 +16,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -37,6 +37,8 @@ Object.defineProperty(Base.prototype, 'test', { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -50,8 +52,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js index 885b2d9ea5..5f535dab42 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -16,7 +12,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -46,6 +46,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -59,8 +61,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js index 8585e33bb3..a2eed62a69 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -20,7 +16,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -31,6 +31,8 @@ let Base = function Base() { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -44,8 +46,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js index 2fb89b7cd1..aa20e6ad8d 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -20,7 +16,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -31,6 +31,8 @@ let Base = function Base() { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -47,8 +49,6 @@ function (_Base) { get: function () {} }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js index e45160363f..83302cdb2c 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -20,7 +16,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -31,6 +31,8 @@ let Base = function Base() { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -44,8 +46,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js index b733cfe80a..f74c110fe1 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } @@ -20,7 +16,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -33,6 +33,8 @@ let value = 2; let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -52,8 +54,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js index ea96e397f5..7f66bea53c 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js @@ -1,9 +1,5 @@ "use strict"; -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -16,7 +12,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -46,6 +46,8 @@ function () { let Obj = /*#__PURE__*/ function (_Base) { + _inherits(Obj, _Base); + function Obj() { _classCallCheck(this, Obj); @@ -59,8 +61,6 @@ function (_Base) { } }]); - _inherits(Obj, _Base); - return Obj; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/with-superClass/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/with-superClass/output.js index 22a7d9478a..7dfbc2cda9 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/with-superClass/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose-classCallCheck/with-superClass/output.js @@ -1,7 +1,7 @@ -function _inheritsLoose(subClass, superClass) { subClass.prototype.__proto__ = superClass && superClass.prototype; subClass.__proto__ = superClass; } - function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; } + let B = function B() { "use strict"; }; @@ -11,6 +11,8 @@ let A = function (_B) { "use strict"; + _inheritsLoose(A, _B); + function A(track) { var _this; @@ -18,7 +20,5 @@ function (_B) { return _assertThisInitialized(_this); } - _inheritsLoose(A, _B); - return A; }(B); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-class/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-class/output.js index 1c0a333441..1d260c689e 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-class/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-class/output.js @@ -3,6 +3,8 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inheritsLoose(Test, _Foo); + function Test() { var _Foo$prototype$test; @@ -23,6 +25,5 @@ function (_Foo) { return _this; } - babelHelpers.inheritsLoose(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-properties/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-properties/output.js index f60f79ec49..8ecd49b4ca 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-properties/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/accessing-super-properties/output.js @@ -3,6 +3,8 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inheritsLoose(Test, _Foo); + function Test() { var _this; @@ -12,6 +14,5 @@ function (_Foo) { return _this; } - babelHelpers.inheritsLoose(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/calling-super-properties/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/calling-super-properties/output.js index 195c5ebe74..a643db1ebd 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/calling-super-properties/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/calling-super-properties/output.js @@ -3,6 +3,8 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inheritsLoose(Test, _Foo); + function Test() { var _this; @@ -19,6 +21,5 @@ function (_Foo) { return _Foo.wow.call(this); }; - babelHelpers.inheritsLoose(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-must-call-super/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-must-call-super/output.js index 682b322a94..a221b7cfb7 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-must-call-super/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-must-call-super/output.js @@ -3,12 +3,13 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inheritsLoose(Foo, _Bar); + function Foo() { var _this; return babelHelpers.assertThisInitialized(_this); } - babelHelpers.inheritsLoose(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-falsey/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-falsey/output.js index 7c276e66cf..c8ecc7ad2a 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-falsey/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-falsey/output.js @@ -3,12 +3,13 @@ var Child = function (_Base) { "use strict"; + babelHelpers.inheritsLoose(Child, _Base); + function Child() { var _this; return false || babelHelpers.assertThisInitialized(_this); } - babelHelpers.inheritsLoose(Child, _Base); return Child; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-object/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-object/output.js index 88250278aa..fe7950eb71 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-object/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/derived-constructor-no-super-return-object/output.js @@ -3,12 +3,13 @@ var Child = function (_Base) { "use strict"; + babelHelpers.inheritsLoose(Child, _Base); + function Child() { var _this; return {} || babelHelpers.assertThisInitialized(_this); } - babelHelpers.inheritsLoose(Child, _Base); return Child; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/exec.js deleted file mode 100644 index 8536d82524..0000000000 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/exec.js +++ /dev/null @@ -1,14 +0,0 @@ -class Base { - get test() { - } -} - -class Sub extends Base { - // Redefining method here - test() { - return 1; - } -} - -expect(new Sub().test()).toBe(1); - diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/input.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/input.js deleted file mode 100644 index 8536d82524..0000000000 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/input.js +++ /dev/null @@ -1,14 +0,0 @@ -class Base { - get test() { - } -} - -class Sub extends Base { - // Redefining method here - test() { - return 1; - } -} - -expect(new Sub().test()).toBe(1); - diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/output.js deleted file mode 100644 index 65f5c6fefe..0000000000 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/redefining-getter-method-in-subclass/output.js +++ /dev/null @@ -1,35 +0,0 @@ -var Base = -/*#__PURE__*/ -function () { - "use strict"; - - function Base() {} - - babelHelpers.createClass(Base, [{ - key: "test", - get: function get() {} - }]); - return Base; -}(); - -var Sub = -/*#__PURE__*/ -function (_Base) { - "use strict"; - - function Sub() { - return _Base.apply(this, arguments) || this; - } - - var _proto = Sub.prototype; - - // Redefining method here - _proto.test = function test() { - return 1; - }; - - babelHelpers.inheritsLoose(Sub, _Base); - return Sub; -}(Base); - -expect(new Sub().test()).toBe(1); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class-id-member-expression/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class-id-member-expression/output.js index 858fd853c9..1a90473147 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class-id-member-expression/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class-id-member-expression/output.js @@ -3,11 +3,12 @@ var BaseController = function (_Chaplin$Controller) { "use strict"; + babelHelpers.inheritsLoose(BaseController, _Chaplin$Controller); + function BaseController() { return _Chaplin$Controller.apply(this, arguments) || this; } - babelHelpers.inheritsLoose(BaseController, _Chaplin$Controller); return BaseController; }(Chaplin.Controller); @@ -16,10 +17,11 @@ var BaseController2 = function (_Chaplin$Controller$A) { "use strict"; + babelHelpers.inheritsLoose(BaseController2, _Chaplin$Controller$A); + function BaseController2() { return _Chaplin$Controller$A.apply(this, arguments) || this; } - babelHelpers.inheritsLoose(BaseController2, _Chaplin$Controller$A); return BaseController2; }(Chaplin.Controller.Another); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class/output.js index abaee2140e..779cd3877c 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-class/output.js @@ -3,10 +3,11 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inheritsLoose(Test, _Foo); + function Test() { return _Foo.apply(this, arguments) || this; } - babelHelpers.inheritsLoose(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/2663/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/2663/output.js index 80059d345f..9efa6b0755 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/2663/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/2663/output.js @@ -15,6 +15,8 @@ var _binarySerializer = babelHelpers.interopRequireDefault(require("./helpers/bi var Connection = /*#__PURE__*/ function (_EventEmitter) { + babelHelpers.inherits(Connection, _EventEmitter); + function Connection(endpoint, joinKey, joinData, roomId) { var _this; @@ -37,7 +39,6 @@ function (_EventEmitter) { this.sock.close(); } }]); - babelHelpers.inherits(Connection, _EventEmitter); return Connection; }(_events.EventEmitter); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/2694/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/2694/output.js index b41fac4dd1..b90d883f21 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/2694/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/2694/output.js @@ -10,6 +10,8 @@ var _BaseFoo2 = babelHelpers.interopRequireDefault(require("./BaseFoo")); var SubFoo = /*#__PURE__*/ function (_BaseFoo) { + babelHelpers.inherits(SubFoo, _BaseFoo); + function SubFoo() { babelHelpers.classCallCheck(this, SubFoo); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(SubFoo).apply(this, arguments)); @@ -22,7 +24,6 @@ function (_BaseFoo) { console.log('SubFoo.talk'); } }]); - babelHelpers.inherits(SubFoo, _BaseFoo); return SubFoo; }(_BaseFoo2.default); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/2775/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/2775/output.js index 9d04f3de58..dda51585da 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/2775/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/2775/output.js @@ -10,6 +10,8 @@ var _react = babelHelpers.interopRequireDefault(require("react")); var RandomComponent = /*#__PURE__*/ function (_Component) { + babelHelpers.inherits(RandomComponent, _Component); + function RandomComponent() { babelHelpers.classCallCheck(this, RandomComponent); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(RandomComponent).call(this)); @@ -23,7 +25,6 @@ function (_Component) { }, _react.default.createElement("h2", null, "Hi there!")); } }]); - babelHelpers.inherits(RandomComponent, _Component); return RandomComponent; }(_react.Component); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/3028/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/3028/output.js index 87b71049ab..ec55d2a483 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/3028/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/3028/output.js @@ -12,6 +12,8 @@ var b = function b() { var a1 = /*#__PURE__*/ function (_b) { + babelHelpers.inherits(a1, _b); + function a1() { var _this; @@ -25,13 +27,14 @@ function (_b) { return _this; } - babelHelpers.inherits(a1, _b); return a1; }(b); var a2 = /*#__PURE__*/ function (_b2) { + babelHelpers.inherits(a2, _b2); + function a2() { var _this2; @@ -45,7 +48,6 @@ function (_b2) { return _this2; } - babelHelpers.inherits(a2, _b2); return a2; }(b); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/5769/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/5769/output.js index 1ffa80809d..41f9eda52e 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/5769/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/5769/output.js @@ -21,6 +21,8 @@ var ColorPoint = function (_Point) { "use strict"; + babelHelpers.inherits(ColorPoint, _Point); + function ColorPoint() { var _this; @@ -41,7 +43,6 @@ function (_Point) { this.getX(); } }]); - babelHelpers.inherits(ColorPoint, _Point); return ColorPoint; }(Point); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/5817/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/5817/output.js index 423d6915fe..af6350f201 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/5817/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/5817/output.js @@ -3,6 +3,8 @@ var A = function (_B) { "use strict"; + babelHelpers.inherits(A, _B); + function A() { var _this; @@ -20,6 +22,5 @@ function (_B) { return _this; } - babelHelpers.inherits(A, _B); return A; }(B); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/T2494/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/T2494/output.js index 6bec39fe7b..2ec0ec90d8 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/T2494/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/T2494/output.js @@ -4,12 +4,13 @@ var x = { function (_Foo) { "use strict"; + babelHelpers.inherits(_class, _Foo); + function _class() { babelHelpers.classCallCheck(this, _class); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(_class).apply(this, arguments)); } - babelHelpers.inherits(_class, _Foo); return _class; }(Foo) }; diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/T2997/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/T2997/output.js index bdf27974e9..5779429055 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/T2997/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/T2997/output.js @@ -9,6 +9,8 @@ var B = function (_A) { "use strict"; + babelHelpers.inherits(B, _A); + function B() { var _this; @@ -16,6 +18,5 @@ function (_A) { return babelHelpers.possibleConstructorReturn(_this, _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(B).call(this))); } - babelHelpers.inherits(B, _A); return B; }(A); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/regression/T7537/output.js b/packages/babel-plugin-transform-classes/test/fixtures/regression/T7537/output.js index 607ab5e64c..309a9b3f41 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/regression/T7537/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/regression/T7537/output.js @@ -1,14 +1,14 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _instanceof(left, right) { if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) { return right[Symbol.hasInstance](left); } else { return left instanceof right; } } @@ -25,6 +25,8 @@ var A = function (_B) { "use strict"; + _inherits(A, _B); + function A(track) { var _this; @@ -34,7 +36,5 @@ function (_B) { return _possibleConstructorReturn(_this); } - _inherits(A, _B); - return A; }(B); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-class/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-class/output.js index c8ede2795b..8d6922614b 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-class/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-class/output.js @@ -3,6 +3,8 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inherits(Test, _Foo); + function Test() { var _babelHelpers$getProt, _babelHelpers$get; @@ -42,6 +44,5 @@ function (_Foo) { (_babelHelpers$get3 = babelHelpers.get(babelHelpers.getPrototypeOf(Test), "foo", this)).call.apply(_babelHelpers$get3, [this, "test"].concat(Array.prototype.slice.call(arguments))); } }]); - babelHelpers.inherits(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-properties/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-properties/output.js index 094d2fe717..aef35bbb31 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-properties/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/accessing-super-properties/output.js @@ -3,6 +3,8 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inherits(Test, _Foo); + function Test() { var _this; @@ -13,6 +15,5 @@ function (_Foo) { return _this; } - babelHelpers.inherits(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/calling-super-properties/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/calling-super-properties/output.js index 8f53419a6e..8c3eaf8811 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/calling-super-properties/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/calling-super-properties/output.js @@ -3,6 +3,8 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inherits(Test, _Foo); + function Test() { var _this; @@ -19,6 +21,5 @@ function (_Foo) { return babelHelpers.get(babelHelpers.getPrototypeOf(Test), "wow", this).call(this); } }]); - babelHelpers.inherits(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/constructor/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/constructor/output.js index d4c794b9b0..2ebe633512 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/constructor/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/constructor/output.js @@ -10,6 +10,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -19,7 +21,6 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/delay-arrow-function-for-bare-super-derived/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/delay-arrow-function-for-bare-super-derived/output.js index afbc4a407c..83a4d9b341 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/delay-arrow-function-for-bare-super-derived/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/delay-arrow-function-for-bare-super-derived/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -12,6 +14,5 @@ function (_Bar) { })); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-2/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-2/output.js index 55faa4e07c..876987aef3 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-2/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-2/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -11,6 +13,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-3/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-3/output.js index 7f359b027a..1859492a7b 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-3/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-3/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -14,6 +16,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-4/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-4/output.js index 1a06ff18a5..3ffe7db5e6 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-4/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super-4/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -13,6 +15,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super/output.js index 040fce5f07..1a1fed3e09 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-must-call-super/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -10,6 +12,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-falsey/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-falsey/output.js index b7425fa44c..231c297d7d 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-falsey/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-falsey/output.js @@ -3,6 +3,8 @@ var Child = function (_Base) { "use strict"; + babelHelpers.inherits(Child, _Base); + function Child() { var _this; @@ -10,6 +12,5 @@ function (_Base) { return babelHelpers.possibleConstructorReturn(_this, false); } - babelHelpers.inherits(Child, _Base); return Child; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-object/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-object/output.js index 58db013541..f0f8887eda 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-object/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/derived-constructor-no-super-return-object/output.js @@ -3,6 +3,8 @@ var Child = function (_Base) { "use strict"; + babelHelpers.inherits(Child, _Base); + function Child() { var _this; @@ -10,6 +12,5 @@ function (_Base) { return babelHelpers.possibleConstructorReturn(_this, {}); } - babelHelpers.inherits(Child, _Base); return Child; }(Base); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/export-super-class/output.mjs b/packages/babel-plugin-transform-classes/test/fixtures/spec/export-super-class/output.mjs index e24e0d8ebd..e37e167cda 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/export-super-class/output.mjs +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/export-super-class/output.mjs @@ -1,12 +1,13 @@ var _default = /*#__PURE__*/ function (_A) { + babelHelpers.inherits(_default, _A); + function _default() { babelHelpers.classCallCheck(this, _default); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(_default).apply(this, arguments)); } - babelHelpers.inherits(_default, _A); return _default; }(A); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-call-in-key/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-call-in-key/output.js index 8feb824b0c..eb661ef2b3 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-call-in-key/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-call-in-key/output.js @@ -13,6 +13,8 @@ var Hello = function Hello() { var Outer = /*#__PURE__*/ function (_Hello) { + babelHelpers.inherits(Outer, _Hello); + function Outer() { var _this2 = this; @@ -39,7 +41,6 @@ function (_Hello) { return babelHelpers.possibleConstructorReturn(_this, new Inner()); } - babelHelpers.inherits(Outer, _Hello); return Outer; }(Hello); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-property-in-key/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-property-in-key/output.js index d6d32d20e8..86533f3dea 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-property-in-key/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-class-super-property-in-key/output.js @@ -19,6 +19,8 @@ function () { var Outer = /*#__PURE__*/ function (_Hello) { + babelHelpers.inherits(Outer, _Hello); + function Outer() { var _this; @@ -44,7 +46,6 @@ function (_Hello) { return babelHelpers.possibleConstructorReturn(_this, new Inner()); } - babelHelpers.inherits(Outer, _Hello); return Outer; }(Hello); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-call-in-key/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-call-in-key/output.js index 3aca869c56..d540908b48 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-call-in-key/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-call-in-key/output.js @@ -13,6 +13,8 @@ var Hello = function Hello() { var Outer = /*#__PURE__*/ function (_Hello) { + babelHelpers.inherits(Outer, _Hello); + function Outer() { var _this; @@ -26,7 +28,6 @@ function (_Hello) { return babelHelpers.possibleConstructorReturn(_this, Inner); } - babelHelpers.inherits(Outer, _Hello); return Outer; }(Hello); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-property-in-key/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-property-in-key/output.js index 86ddf229ce..45f4172368 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-property-in-key/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/nested-object-super-property-in-key/output.js @@ -19,6 +19,8 @@ function () { var Outer = /*#__PURE__*/ function (_Hello) { + babelHelpers.inherits(Outer, _Hello); + function Outer() { var _this; @@ -33,7 +35,6 @@ function (_Hello) { return babelHelpers.possibleConstructorReturn(_this, Inner); } - babelHelpers.inherits(Outer, _Hello); return Outer; }(Hello); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/exec.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/exec.js deleted file mode 100644 index 8536d82524..0000000000 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/exec.js +++ /dev/null @@ -1,14 +0,0 @@ -class Base { - get test() { - } -} - -class Sub extends Base { - // Redefining method here - test() { - return 1; - } -} - -expect(new Sub().test()).toBe(1); - diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/input.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/input.js deleted file mode 100644 index 8536d82524..0000000000 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/input.js +++ /dev/null @@ -1,14 +0,0 @@ -class Base { - get test() { - } -} - -class Sub extends Base { - // Redefining method here - test() { - return 1; - } -} - -expect(new Sub().test()).toBe(1); - diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/output.js deleted file mode 100644 index 8c1c7d190c..0000000000 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/redefining-getter-method-in-subclass/output.js +++ /dev/null @@ -1,38 +0,0 @@ -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); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-anonymous/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-anonymous/output.js index d9e1dfd1cc..614dc6c2d9 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-anonymous/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-anonymous/output.js @@ -3,12 +3,13 @@ var TestEmpty = function (_ref) { "use strict"; + babelHelpers.inherits(TestEmpty, _ref); + function TestEmpty() { babelHelpers.classCallCheck(this, TestEmpty); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(TestEmpty).apply(this, arguments)); } - babelHelpers.inherits(TestEmpty, _ref); return TestEmpty; }( /*#__PURE__*/ @@ -27,12 +28,13 @@ var TestConstructorOnly = function (_ref2) { "use strict"; + babelHelpers.inherits(TestConstructorOnly, _ref2); + function TestConstructorOnly() { babelHelpers.classCallCheck(this, TestConstructorOnly); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(TestConstructorOnly).apply(this, arguments)); } - babelHelpers.inherits(TestConstructorOnly, _ref2); return TestConstructorOnly; }( /*#__PURE__*/ @@ -51,12 +53,13 @@ var TestMethodOnly = function (_ref3) { "use strict"; + babelHelpers.inherits(TestMethodOnly, _ref3); + function TestMethodOnly() { babelHelpers.classCallCheck(this, TestMethodOnly); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(TestMethodOnly).apply(this, arguments)); } - babelHelpers.inherits(TestMethodOnly, _ref3); return TestMethodOnly; }( /*#__PURE__*/ @@ -79,12 +82,13 @@ var TestConstructorAndMethod = function (_ref4) { "use strict"; + babelHelpers.inherits(TestConstructorAndMethod, _ref4); + function TestConstructorAndMethod() { babelHelpers.classCallCheck(this, TestConstructorAndMethod); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(TestConstructorAndMethod).apply(this, arguments)); } - babelHelpers.inherits(TestConstructorAndMethod, _ref4); return TestConstructorAndMethod; }( /*#__PURE__*/ @@ -107,12 +111,13 @@ var TestMultipleMethods = function (_ref5) { "use strict"; + babelHelpers.inherits(TestMultipleMethods, _ref5); + function TestMultipleMethods() { babelHelpers.classCallCheck(this, TestMultipleMethods); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(TestMultipleMethods).apply(this, arguments)); } - babelHelpers.inherits(TestMultipleMethods, _ref5); return TestMultipleMethods; }( /*#__PURE__*/ diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-id-member-expression/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-id-member-expression/output.js index 658f15a5f5..d656ac9528 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-id-member-expression/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class-id-member-expression/output.js @@ -3,12 +3,13 @@ var BaseController = function (_Chaplin$Controller) { "use strict"; + babelHelpers.inherits(BaseController, _Chaplin$Controller); + function BaseController() { babelHelpers.classCallCheck(this, BaseController); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(BaseController).apply(this, arguments)); } - babelHelpers.inherits(BaseController, _Chaplin$Controller); return BaseController; }(Chaplin.Controller); @@ -17,11 +18,12 @@ var BaseController2 = function (_Chaplin$Controller$A) { "use strict"; + babelHelpers.inherits(BaseController2, _Chaplin$Controller$A); + function BaseController2() { babelHelpers.classCallCheck(this, BaseController2); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(BaseController2).apply(this, arguments)); } - babelHelpers.inherits(BaseController2, _Chaplin$Controller$A); return BaseController2; }(Chaplin.Controller.Another); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class/output.js index 1ef3e8afb6..8a994335e8 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-class/output.js @@ -3,11 +3,12 @@ var Test = function (_Foo) { "use strict"; + babelHelpers.inherits(Test, _Foo); + function Test() { babelHelpers.classCallCheck(this, Test); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Test).apply(this, arguments)); } - babelHelpers.inherits(Test, _Foo); return Test; }(Foo); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super-inline/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super-inline/output.js index 5637d600a9..5c63d332cc 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super-inline/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super-inline/output.js @@ -1,24 +1,26 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Foo = /*#__PURE__*/ function (_Bar) { "use strict"; + _inherits(Foo, _Bar); + function Foo() { var _this; @@ -29,7 +31,5 @@ function (_Bar) { return _this; } - _inherits(Foo, _Bar); - return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super/output.js index 4d3b5cd506..9ad7dc9e27 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-bare-super/output.js @@ -1,24 +1,26 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var Foo = /*#__PURE__*/ function (_Bar) { "use strict"; + _inherits(Foo, _Bar); + function Foo() { var _this; @@ -29,7 +31,5 @@ function (_Bar) { return _this = _possibleConstructorReturn(this, _getPrototypeOf(Foo).call(this)); } - _inherits(Foo, _Bar); - return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/output.js index b74f4cb87e..a9d35599df 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-2/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -14,6 +16,5 @@ function (_Bar) { return _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/output.js index 6dcddcbcef..1058746336 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda-3/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -15,6 +17,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/output.js index ae107cecec..6836413a21 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-before-in-lambda/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -13,6 +15,5 @@ function (_Bar) { return _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-in-prop-exression/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-in-prop-exression/output.js index 6fa51cc9e7..c501dacfaf 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-in-prop-exression/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-reference-in-prop-exression/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -11,6 +13,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-2/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-2/output.js index f40a2612a7..37de9b654a 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-2/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-2/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -10,6 +12,5 @@ function (_Bar) { return _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this, babelHelpers.assertThisInitialized(babelHelpers.assertThisInitialized(_this)))); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-3/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-3/output.js index 20dcf6c80c..d678fc5b30 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-3/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-3/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -14,6 +16,5 @@ function (_Bar) { return _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-4/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-4/output.js index 02248a3a2a..bc92c2f54d 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-4/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-4/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -15,6 +17,5 @@ function (_Bar) { return _this; } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-5/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-5/output.js index 8f24cd867f..57ca566c99 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-5/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes-5/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -11,6 +13,5 @@ function (_Bar) { return babelHelpers.possibleConstructorReturn(_this); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes/output.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes/output.js index 6ff7d253da..cab6da87e8 100644 --- a/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes/output.js +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/this-not-allowed-before-super-in-derived-classes/output.js @@ -3,6 +3,8 @@ var Foo = function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { var _this; @@ -11,6 +13,5 @@ function (_Bar) { return _this = babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).call(this)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349/output.js b/packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349/output.js index e8e715b616..470bd7eee9 100644 --- a/packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349/output.js +++ b/packages/babel-plugin-transform-exponentiation-operator/test/fixtures/regression/4349/output.js @@ -10,7 +10,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } foo = _obj = { bar() { diff --git a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/modules-3/output.js b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/modules-3/output.js index 2035ed91ed..79a6de9fc3 100644 --- a/packages/babel-plugin-transform-function-name/test/fixtures/function-name/modules-3/output.js +++ b/packages/babel-plugin-transform-function-name/test/fixtures/function-name/modules-3/output.js @@ -10,6 +10,8 @@ var _store = require("./store"); let Login = /*#__PURE__*/ function (_React$Component) { + babelHelpers.inherits(Login, _React$Component); + function Login() { babelHelpers.classCallCheck(this, Login); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Login).apply(this, arguments)); @@ -21,7 +23,6 @@ function (_React$Component) { return (0, _store.getForm)().toJS(); } }]); - babelHelpers.inherits(Login, _React$Component); return Login; }(React.Component); diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js index d36b217085..a576d5093d 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-data-defined-on-parent/output.js @@ -6,7 +6,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = { test: 1 diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js index 3145be482f..c39886fa23 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-getter-defined-on-parent/output.js @@ -6,7 +6,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = { get test() { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js index ffcfc54cb2..97f6025100 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-not-defined-on-parent/output.js @@ -6,7 +6,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js index a764ffde6a..251d55e479 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/get-semantics-setter-defined-on-parent/output.js @@ -6,7 +6,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = { set test(v) { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js index 388e2cde39..b73b5213cf 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-data-defined-on-parent/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = { test: 1 diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js index 7cda93dd04..cbcdae0086 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-getter-defined-on-parent/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = { get test() { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-configurable-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-configurable-on-obj/output.js index 1723818e08..7ce8e46ad4 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-configurable-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-configurable-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-enumerable-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-enumerable-on-obj/output.js index a7e39d878c..0fe6b9fc03 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-enumerable-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-enumerable-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-writable-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-writable-on-obj/output.js index 45ff975971..4eb398f036 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-writable-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-non-writable-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js index 9b0e76fca9..b1994ab935 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-data-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js index df83002f36..35668a2625 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-getter-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js index e6c90419f0..4ca6d9afec 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-not-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; const obj = _obj = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js index 3c1c3278a1..05f7a8d1a1 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-not-defined-on-parent-setter-on-obj/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } const Base = {}; let value = 2; diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js index 6c1471fa60..99389893c5 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/get-set/set-semantics-setter-defined-on-parent/output.js @@ -10,7 +10,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } let value = 1; const Base = { diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-exponentiation/output.js b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-exponentiation/output.js index cf1162d608..028ca49735 100644 --- a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-exponentiation/output.js +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-exponentiation/output.js @@ -10,7 +10,7 @@ function _get(target, property, receiver) { if (typeof Reflect !== "undefined" & function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } foo = _obj = { bar: function () { diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-nested-iife/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-nested-iife/output.js index 7f649053e7..d11588d86b 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-nested-iife/output.js +++ b/packages/babel-plugin-transform-parameters/test/fixtures/parameters/rest-nested-iife/output.js @@ -5,12 +5,13 @@ function broken(x) { function (_Bar) { "use strict"; + babelHelpers.inherits(Foo, _Bar); + function Foo() { babelHelpers.classCallCheck(this, Foo); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(Foo).apply(this, arguments)); } - babelHelpers.inherits(Foo, _Bar); return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-parameters/test/fixtures/regression/6057-expanded/output.js b/packages/babel-plugin-transform-parameters/test/fixtures/regression/6057-expanded/output.js index 3feb0f81d6..1384dea231 100644 --- a/packages/babel-plugin-transform-parameters/test/fixtures/regression/6057-expanded/output.js +++ b/packages/babel-plugin-transform-parameters/test/fixtures/regression/6057-expanded/output.js @@ -15,17 +15,17 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat function _classCallCheck(instance, Constructor) { if (!_instanceof(instance, Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } @@ -34,6 +34,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope var App = /*#__PURE__*/ function (_Component) { + _inherits(App, _Component); + function App() { var _getPrototypeOf2; @@ -55,8 +57,6 @@ function (_Component) { } }]); - _inherits(App, _Component); - return App; }(Component); diff --git a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/output.js b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/output.js index 6213f002d9..1af954e468 100644 --- a/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/output.js +++ b/packages/babel-plugin-transform-react-jsx/test/fixtures/react/optimisation.react.constant-elements/output.js @@ -11,6 +11,8 @@ let App = function (_React$Component) { "use strict"; + babelHelpers.inherits(App, _React$Component); + function App() { babelHelpers.classCallCheck(this, App); return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(App).apply(this, arguments)); @@ -29,6 +31,5 @@ function (_React$Component) { ; } }]); - babelHelpers.inherits(App, _React$Component); return App; }(React.Component); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js index f78154297f..d5ad90a1c2 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns-useESModules/output.js @@ -1,23 +1,23 @@ var _classCallCheck = require("@babel/runtime/helpers/builtin/es6/classCallCheck"); -var _inherits = require("@babel/runtime/helpers/builtin/es6/inherits"); - var _possibleConstructorReturn = require("@babel/runtime/helpers/builtin/es6/possibleConstructorReturn"); var _getPrototypeOf = require("@babel/runtime/helpers/builtin/es6/getPrototypeOf"); +var _inherits = require("@babel/runtime/helpers/builtin/es6/inherits"); + let Foo = /*#__PURE__*/ function (_Bar) { "use strict"; + _inherits(Foo, _Bar); + function Foo() { _classCallCheck(this, Foo); return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); } - _inherits(Foo, _Bar); - return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js index c79ffc2805..0dcb1a6dc1 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useBuiltIns/output.js @@ -1,23 +1,23 @@ var _classCallCheck = require("@babel/runtime/helpers/builtin/classCallCheck"); -var _inherits = require("@babel/runtime/helpers/builtin/inherits"); - var _possibleConstructorReturn = require("@babel/runtime/helpers/builtin/possibleConstructorReturn"); var _getPrototypeOf = require("@babel/runtime/helpers/builtin/getPrototypeOf"); +var _inherits = require("@babel/runtime/helpers/builtin/inherits"); + let Foo = /*#__PURE__*/ function (_Bar) { "use strict"; + _inherits(Foo, _Bar); + function Foo() { _classCallCheck(this, Foo); return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); } - _inherits(Foo, _Bar); - return Foo; }(Bar); diff --git a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js index fb1020420a..9d1599d1f2 100644 --- a/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js +++ b/packages/babel-plugin-transform-runtime/test/fixtures/use-options/useESModules/output.js @@ -1,23 +1,23 @@ var _classCallCheck = require("@babel/runtime/helpers/es6/classCallCheck"); -var _inherits = require("@babel/runtime/helpers/es6/inherits"); - var _possibleConstructorReturn = require("@babel/runtime/helpers/es6/possibleConstructorReturn"); var _getPrototypeOf = require("@babel/runtime/helpers/es6/getPrototypeOf"); +var _inherits = require("@babel/runtime/helpers/es6/inherits"); + let Foo = /*#__PURE__*/ function (_Bar) { "use strict"; + _inherits(Foo, _Bar); + function Foo() { _classCallCheck(this, Foo); return _possibleConstructorReturn(this, _getPrototypeOf(Foo).apply(this, arguments)); } - _inherits(Foo, _Bar); - return Foo; }(Bar); diff --git a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js index 35073edfe8..fff577465c 100644 --- a/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js +++ b/packages/babel-preset-env/test/fixtures/plugins-integration/issue-7527/output.js @@ -4,12 +4,12 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterat function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } _setPrototypeOf(subClass.prototype, superClass && superClass.prototype); if (superClass) _setPrototypeOf(subClass, superClass); } - function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null) return null; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); } function isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } @@ -18,19 +18,19 @@ function _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _co function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } -function _getPrototypeOf(o) { _getPrototypeOf = Object.getPrototypeOf || function _getPrototypeOf(o) { return o.__proto__; }; return _getPrototypeOf(o); } +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } var MyDate = /*#__PURE__*/ function (_Date) { + _inherits(MyDate, _Date); + function MyDate(time) { _classCallCheck(this, MyDate); return _possibleConstructorReturn(this, _getPrototypeOf(MyDate).call(this, time)); } - _inherits(MyDate, _Date); - return MyDate; }(_wrapNativeSuper(Date));