diff --git a/packages/babel-helper-module-transforms/src/rewrite-this.js b/packages/babel-helper-module-transforms/src/rewrite-this.js index f91442b26aaf..f9116bbbecb4 100644 --- a/packages/babel-helper-module-transforms/src/rewrite-this.js +++ b/packages/babel-helper-module-transforms/src/rewrite-this.js @@ -1,5 +1,3 @@ -import { classMethod } from "@babel/types"; - export default function rewriteThis(programPath: NodePath) { // Rewrite "this" to be "undefined". programPath.traverse(rewriteThisVisitor); @@ -17,9 +15,13 @@ const rewriteThisVisitor = { if (!path.isArrowFunctionExpression()) path.skip(); }, ClassProperty(path) { - classMethod(path); path.skip(); }, + ClassMethod(path) { + if (path.node.computed) { + //requeue the key child of classProperty here + } + }, ClassPrivateProperty(path) { path.skip(); }, diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/rewritethis-computed-class-elements/input.mjs b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/rewritethis-computed-class-elements/input.mjs new file mode 100644 index 000000000000..9c3cc9394e95 --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/rewritethis-computed-class-elements/input.mjs @@ -0,0 +1 @@ +export class C { [this.name] = 42 } diff --git a/packages/babel-plugin-transform-modules-commonjs/test/fixtures/rewritethis-computed-class-elements/options.json b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/rewritethis-computed-class-elements/options.json new file mode 100644 index 000000000000..f1648478a03a --- /dev/null +++ b/packages/babel-plugin-transform-modules-commonjs/test/fixtures/rewritethis-computed-class-elements/options.json @@ -0,0 +1,7 @@ +{ + "plugins": [ + "external-helpers", + "transform-modules-commonjs", + "@babel/plugin-proposal-class-properties" + ] +}