diff --git a/src/acorn/src/statement.js b/src/acorn/src/statement.js index b704512002..23bd66f5f4 100755 --- a/src/acorn/src/statement.js +++ b/src/acorn/src/statement.js @@ -504,7 +504,7 @@ pp.parseClass = function(node, isStatement) { this.parsePropertyName(method) } method.kind = "method" - if (!method.computed && !isGenerator) { + if (!method.computed && !isGenerator && !isAsync) { if (method.key.type === "Identifier") { if (this.type !== tt.parenL && (method.key.name === "get" || method.key.name === "set")) { method.kind = method.key.name diff --git a/test/core/fixtures/transformation/validation/async-constructor/actual.js b/test/core/fixtures/transformation/validation/async-constructor/actual.js new file mode 100644 index 0000000000..70ffb97fb1 --- /dev/null +++ b/test/core/fixtures/transformation/validation/async-constructor/actual.js @@ -0,0 +1 @@ +class X { async constructor() {} } diff --git a/test/core/fixtures/transformation/validation/async-constructor/options.json b/test/core/fixtures/transformation/validation/async-constructor/options.json new file mode 100644 index 0000000000..2aa01942ac --- /dev/null +++ b/test/core/fixtures/transformation/validation/async-constructor/options.json @@ -0,0 +1,4 @@ +{ + "throws": "Illegal kind for constructor method", + "optional": ["es7.asyncFunctions"] +}