diff --git a/escodegen.js b/escodegen.js index 82417cd7..e10d2d64 100644 --- a/escodegen.js +++ b/escodegen.js @@ -2161,6 +2161,26 @@ return join(result, fragment); }, + FieldDefinition: function(expr, precedence, flags) { + var result; + if (expr['static']) { + result = ['static' + space]; + } + else { + result = []; + } + var fragment = [ + this.generatePropertyKey(expr.key, expr.computed), + space + '=' +space, + this.generateExpression(expr.value, Precedence.Assignment, E_TTT) + ]; + return join(result, fragment); + }, + + PrivateName: function(expr, precedence, flags) { + return toSourceNodeWhenNeeded('#' + expr.name, expr); + }, + Property: function (expr, precedence, flags) { if (expr.kind === 'get' || expr.kind === 'set') { return [ diff --git a/test/compare-acorn-es2019/class-field-declarations.expected.js b/test/compare-acorn-es2019/class-field-declarations.expected.js new file mode 100644 index 00000000..7cfcdd45 --- /dev/null +++ b/test/compare-acorn-es2019/class-field-declarations.expected.js @@ -0,0 +1,7 @@ +class FieldDeclarations{ + a = 1 +} +class PrivateFields{ + #a = 1 +} + diff --git a/test/compare-acorn-es2019/class-field-declarations.expected.min.js b/test/compare-acorn-es2019/class-field-declarations.expected.min.js new file mode 100644 index 00000000..47742c23 --- /dev/null +++ b/test/compare-acorn-es2019/class-field-declarations.expected.min.js @@ -0,0 +1 @@ +class FieldDeclarations{a=1}class PrivateFields{#a=1} \ No newline at end of file diff --git a/test/compare-acorn-es2019/class-field-declarations.js b/test/compare-acorn-es2019/class-field-declarations.js new file mode 100644 index 00000000..7cfcdd45 --- /dev/null +++ b/test/compare-acorn-es2019/class-field-declarations.js @@ -0,0 +1,7 @@ +class FieldDeclarations{ + a = 1 +} +class PrivateFields{ + #a = 1 +} +