diff --git a/src/babel/transformation/transformers/es6/classes.js b/src/babel/transformation/transformers/es6/classes.js index 3647d1f5da..49f5c45e41 100644 --- a/src/babel/transformation/transformers/es6/classes.js +++ b/src/babel/transformation/transformers/es6/classes.js @@ -477,7 +477,7 @@ class ClassTransformer { var classRef = this.classRef; if (!node.static) classRef = t.memberExpression(classRef, t.identifier("prototype")); - var methodName = t.memberExpression(classRef, node.key, node.computed); + var methodName = t.memberExpression(classRef, node.key, node.computed || t.isLiteral(node.key)); var expr = t.expressionStatement(t.assignmentExpression("=", methodName, node.value)); t.inheritsComments(expr, node); diff --git a/test/core/fixtures/transformation/es6.classes-loose/literal-key/actual.js b/test/core/fixtures/transformation/es6.classes-loose/literal-key/actual.js new file mode 100644 index 0000000000..e3ad20145b --- /dev/null +++ b/test/core/fixtures/transformation/es6.classes-loose/literal-key/actual.js @@ -0,0 +1,5 @@ +class Foo { + "bar"() { + + } +} diff --git a/test/core/fixtures/transformation/es6.classes-loose/literal-key/expected.js b/test/core/fixtures/transformation/es6.classes-loose/literal-key/expected.js new file mode 100644 index 0000000000..3fdc07034b --- /dev/null +++ b/test/core/fixtures/transformation/es6.classes-loose/literal-key/expected.js @@ -0,0 +1,11 @@ +"use strict"; + +var Foo = (function () { + function Foo() { + babelHelpers.classCallCheck(this, Foo); + } + + Foo.prototype["bar"] = function bar() {}; + + return Foo; +})();