diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/inferred-expression-name/actual.js b/packages/babel-core/test/fixtures/transformation/es6.classes/inferred-expression-name/actual.js new file mode 100644 index 0000000000..d710ae858c --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/inferred-expression-name/actual.js @@ -0,0 +1 @@ +var o = { foo: class foo {} }; diff --git a/packages/babel-core/test/fixtures/transformation/es6.classes/inferred-expression-name/expected.js b/packages/babel-core/test/fixtures/transformation/es6.classes/inferred-expression-name/expected.js new file mode 100644 index 0000000000..9b8cd0baff --- /dev/null +++ b/packages/babel-core/test/fixtures/transformation/es6.classes/inferred-expression-name/expected.js @@ -0,0 +1,3 @@ +var o = { foo: function foo() { + babelHelpers.classCallCheck(this, foo); + } }; diff --git a/packages/babel-plugin-transform-es2015-classes/src/index.js b/packages/babel-plugin-transform-es2015-classes/src/index.js index ad7dd70135..887890d343 100644 --- a/packages/babel-plugin-transform-es2015-classes/src/index.js +++ b/packages/babel-plugin-transform-es2015-classes/src/index.js @@ -20,7 +20,7 @@ export default function ({ types: t }) { ClassExpression(path, state) { let inferred = nameFunction(path); - if (inferred) return path.replaceWith(inferred); + if (inferred && inferred !== path.node) return path.replaceWith(inferred); let Constructor = VanillaTransformer; if (state.opts.loose) Constructor = LooseTransformer;