turn method literal keys into assignments in loose mode - fixes #1797

This commit is contained in:
Sebastian McKenzie 2015-06-21 23:59:06 +01:00
parent aa0f3ac5d0
commit 4b0f624fb3
3 changed files with 17 additions and 1 deletions

View File

@ -477,7 +477,7 @@ class ClassTransformer {
var classRef = this.classRef; var classRef = this.classRef;
if (!node.static) classRef = t.memberExpression(classRef, t.identifier("prototype")); 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)); var expr = t.expressionStatement(t.assignmentExpression("=", methodName, node.value));
t.inheritsComments(expr, node); t.inheritsComments(expr, node);

View File

@ -0,0 +1,5 @@
class Foo {
"bar"() {
}
}

View File

@ -0,0 +1,11 @@
"use strict";
var Foo = (function () {
function Foo() {
babelHelpers.classCallCheck(this, Foo);
}
Foo.prototype["bar"] = function bar() {};
return Foo;
})();