diff --git a/packages/babel-helper-replace-supers/src/index.js b/packages/babel-helper-replace-supers/src/index.js index 69ceb28ed51c..3412d321caf2 100644 --- a/packages/babel-helper-replace-supers/src/index.js +++ b/packages/babel-helper-replace-supers/src/index.js @@ -125,8 +125,10 @@ const specHandlers = { ]); }, - destructureSet() { - // TODO + destructureSet(superMember) { + throw superMember.buildCodeFrameError( + `Destructuring to a super field is not supported yet.`, + ); }, call(superMember, args) { diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern-1/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern-1/input.js new file mode 100644 index 000000000000..bc8f7e6aa311 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern-1/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;([x, ...super.client] = props); + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern-1/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern-1/options.json new file mode 100644 index 000000000000..d9d73e427633 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern-1/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern/input.js new file mode 100644 index 000000000000..aa6fb16c74d4 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;([super.client] = props); + } +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern/options.json new file mode 100644 index 000000000000..d9d73e427633 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-array-pattern/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern-1/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern-1/input.js new file mode 100644 index 000000000000..19705340451c --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern-1/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;({ x, ...super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern-1/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern-1/options.json new file mode 100644 index 000000000000..d9d73e427633 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern-1/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern/input.js b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern/input.js new file mode 100644 index 000000000000..45845d4e16b5 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;({ client: super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern/options.json b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern/options.json new file mode 100644 index 000000000000..d9d73e427633 --- /dev/null +++ b/packages/babel-plugin-proposal-class-properties/test/fixtures/public/super-destructuring-object-pattern/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "proposal-class-properties", + "transform-classes", + "transform-block-scoping", + "syntax-class-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern-1/input.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern-1/input.js new file mode 100644 index 000000000000..5b3864b52b67 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern-1/input.js @@ -0,0 +1,5 @@ +class Foo { + foo(props) { + ;([x, ...super.client] = props); + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern-1/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern-1/output.js new file mode 100644 index 000000000000..79753b87162a --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern-1/output.js @@ -0,0 +1,16 @@ +var Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() {} + + var _proto = Foo.prototype; + + _proto.foo = function foo(props) { + ; + [x, ...this.client] = props; + }; + + return Foo; +}(); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern/input.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern/input.js new file mode 100644 index 000000000000..96267163e8ad --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern/input.js @@ -0,0 +1,5 @@ +class Foo { + foo(props) { + ;([super.client] = props); + } +} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern/output.js new file mode 100644 index 000000000000..0672ad62fdab --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-array-pattern/output.js @@ -0,0 +1,16 @@ +var Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() {} + + var _proto = Foo.prototype; + + _proto.foo = function foo(props) { + ; + [this.client] = props; + }; + + return Foo; +}(); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern-1/input.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern-1/input.js new file mode 100644 index 000000000000..f90c1a21039d --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern-1/input.js @@ -0,0 +1,5 @@ +class Foo { + foo(props) { + ;({ x, ...super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern-1/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern-1/output.js new file mode 100644 index 000000000000..896273e40f43 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern-1/output.js @@ -0,0 +1,19 @@ +var Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() {} + + var _proto = Foo.prototype; + + _proto.foo = function foo(props) { + ; + ({ + x, + ...this.client + } = props); + }; + + return Foo; +}(); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern/input.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern/input.js new file mode 100644 index 000000000000..391378c2af5e --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern/input.js @@ -0,0 +1,5 @@ +class Foo { + foo(props) { + ;({ client: super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern/output.js b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern/output.js new file mode 100644 index 000000000000..816071362136 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/loose/super-destructuring-object-pattern/output.js @@ -0,0 +1,18 @@ +var Foo = +/*#__PURE__*/ +function () { + "use strict"; + + function Foo() {} + + var _proto = Foo.prototype; + + _proto.foo = function foo(props) { + ; + ({ + client: this.client + } = props); + }; + + return Foo; +}(); diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern-1/input.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern-1/input.js new file mode 100644 index 000000000000..bc8f7e6aa311 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern-1/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;([x, ...super.client] = props); + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern-1/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern-1/options.json new file mode 100644 index 000000000000..15c260b243c0 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern-1/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern/input.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern/input.js new file mode 100644 index 000000000000..aa6fb16c74d4 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;([super.client] = props); + } +} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern/options.json new file mode 100644 index 000000000000..15c260b243c0 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-array-pattern/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern-1/input.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern-1/input.js new file mode 100644 index 000000000000..19705340451c --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern-1/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;({ x, ...super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern-1/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern-1/options.json new file mode 100644 index 000000000000..15c260b243c0 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern-1/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern/input.js b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern/input.js new file mode 100644 index 000000000000..45845d4e16b5 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern/input.js @@ -0,0 +1,5 @@ +class Foo { + constructor(props) { + ;({ client: super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern/options.json b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern/options.json new file mode 100644 index 000000000000..15c260b243c0 --- /dev/null +++ b/packages/babel-plugin-transform-classes/test/fixtures/spec/super-destructuring-object-pattern/options.json @@ -0,0 +1,10 @@ +{ + "plugins": [ + "external-helpers", + "transform-function-name", + "transform-classes", + "transform-spread", + "transform-block-scoping" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern-1/input.js b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern-1/input.js new file mode 100644 index 000000000000..e9757ea1ef41 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern-1/input.js @@ -0,0 +1,5 @@ +const foo = { + bar(props) { + ;([x, ...super.client] = props); + } +} diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern-1/options.json b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern-1/options.json new file mode 100644 index 000000000000..7975cd686c73 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern-1/options.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + "external-helpers", + "transform-object-super", + "transform-shorthand-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern/input.js b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern/input.js new file mode 100644 index 000000000000..e4ee0d05beb8 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern/input.js @@ -0,0 +1,5 @@ +const foo = { + bar(props) { + ;([super.client] = props); + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern/options.json b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern/options.json new file mode 100644 index 000000000000..7975cd686c73 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-array-pattern/options.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + "external-helpers", + "transform-object-super", + "transform-shorthand-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern-1/input.js b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern-1/input.js new file mode 100644 index 000000000000..232d42042fdc --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern-1/input.js @@ -0,0 +1,5 @@ +const foo = { + bar(props) { + ;({ x, ...super.client } = props) + } +} diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern-1/options.json b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern-1/options.json new file mode 100644 index 000000000000..7975cd686c73 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern-1/options.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + "external-helpers", + "transform-object-super", + "transform-shorthand-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +} diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern/input.js b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern/input.js new file mode 100644 index 000000000000..5400ca56b6b6 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern/input.js @@ -0,0 +1,5 @@ +const foo = { + bar(props) { + ;({ client: super.client } = props) + } +} \ No newline at end of file diff --git a/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern/options.json b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern/options.json new file mode 100644 index 000000000000..7975cd686c73 --- /dev/null +++ b/packages/babel-plugin-transform-object-super/test/fixtures/object-super/super-destructuring-object-pattern/options.json @@ -0,0 +1,8 @@ +{ + "plugins": [ + "external-helpers", + "transform-object-super", + "transform-shorthand-properties" + ], + "throws": "Destructuring to a super field is not supported yet." +}