diff --git a/packages/babel-plugin-transform-class-properties/src/index.js b/packages/babel-plugin-transform-class-properties/src/index.js index 0ee7a915ac..3de3c28019 100644 --- a/packages/babel-plugin-transform-class-properties/src/index.js +++ b/packages/babel-plugin-transform-class-properties/src/index.js @@ -134,6 +134,10 @@ export default function ({ types: t }) { nodes.push(t.expressionStatement(ref)); } + if (path.isClassDeclaration() && path.parentPath.isExportDeclaration()) { + path = path.parentPath; + } + path.insertAfter(nodes); } } diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/constructor-collision/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/constructor-collision/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/constructor-collision/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/constructor-collision/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/constructor-collision/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/constructor-collision/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/constructor-collision/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/constructor-collision/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/derived/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/derived/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/derived/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/derived/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/derived/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/derived/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/derived/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/derived/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance-undefined/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/instance-undefined/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance-undefined/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/instance-undefined/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance-undefined/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/instance-undefined/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance-undefined/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/instance-undefined/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/instance/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/instance/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/instance/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/instance/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/instance/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/options.json b/packages/babel-plugin-transform-class-properties/test/fixtures/general/options.json similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/options.json rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/options.json diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-export/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-export/actual.js new file mode 100644 index 0000000000..729475cc52 --- /dev/null +++ b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-export/actual.js @@ -0,0 +1,7 @@ +export class MyClass { + static property = value; +} + +export default class MyClass2 { + static property = value; +} diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-export/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-export/expected.js new file mode 100644 index 0000000000..0405f67721 --- /dev/null +++ b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-export/expected.js @@ -0,0 +1,12 @@ +export var MyClass = function MyClass() { + babelHelpers.classCallCheck(this, MyClass); +}; + +MyClass.property = value; + +var MyClass2 = function MyClass2() { + babelHelpers.classCallCheck(this, MyClass2); +}; + +export default MyClass2; +MyClass2.property = value; diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static-undefined/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-undefined/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static-undefined/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/static-undefined/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static-undefined/exec.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-undefined/exec.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static-undefined/exec.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/static-undefined/exec.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static-undefined/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static-undefined/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static-undefined/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/static-undefined/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/static/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static/exec.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static/exec.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static/exec.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/static/exec.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/static/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/static/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/static/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-expression/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/super-expression/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-expression/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/super-expression/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-expression/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/super-expression/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-expression/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/super-expression/expected.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-statement/actual.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/super-statement/actual.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-statement/actual.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/super-statement/actual.js diff --git a/packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-statement/expected.js b/packages/babel-plugin-transform-class-properties/test/fixtures/general/super-statement/expected.js similarity index 100% rename from packages/babel-plugin-transform-class-properties/test/fixtures/class-properties/super-statement/expected.js rename to packages/babel-plugin-transform-class-properties/test/fixtures/general/super-statement/expected.js diff --git a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663-2/options.json b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663-2/options.json index fa4caa55e4..9093196e47 100644 --- a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663-2/options.json +++ b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/2663-2/options.json @@ -1,4 +1,3 @@ { - "presets": ["es2015", "react"], "plugins": ["transform-class-properties", "external-helpers-2"] } diff --git a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/options.json b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/options.json index 4713c96921..d3de7c728c 100644 --- a/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/options.json +++ b/packages/babel-plugin-transform-es2015-classes/test/fixtures/regression/options.json @@ -1,4 +1,4 @@ { "plugins": ["external-helpers-2"], - "presets": ["es2015"] + "presets": ["es2015", "react"] }