From eee573bee25bcc42ef405e685d6930eda62e33de Mon Sep 17 00:00:00 2001 From: Timofey Kachalov Date: Tue, 23 Jun 2020 02:05:37 +0300 Subject: [PATCH] fixed precedence of sequence expression in computed property name (#415) Co-authored-by: sanex3339 --- escodegen.js | 2 +- test/compare-acorn-es6/class-declaration.expected.js | 12 ++++++++++++ .../class-declaration.expected.min.js | 1 + test/compare-acorn-es6/class-declaration.js | 9 +++++++++ 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 test/compare-acorn-es6/class-declaration.expected.js create mode 100644 test/compare-acorn-es6/class-declaration.expected.min.js create mode 100644 test/compare-acorn-es6/class-declaration.js diff --git a/escodegen.js b/escodegen.js index 3e1a207e..4c055b88 100644 --- a/escodegen.js +++ b/escodegen.js @@ -983,7 +983,7 @@ result.push('['); } - result.push(this.generateExpression(expr, Precedence.Sequence, E_TTT)); + result.push(this.generateExpression(expr, Precedence.Assignment, E_TTT)); if (computed) { result.push(']'); diff --git a/test/compare-acorn-es6/class-declaration.expected.js b/test/compare-acorn-es6/class-declaration.expected.js new file mode 100644 index 00000000..abc86a65 --- /dev/null +++ b/test/compare-acorn-es6/class-declaration.expected.js @@ -0,0 +1,12 @@ +class ComputedKey { + [n1 + n2]() { + } +} +class AssignmentExpressionAsKey { + [n1 = n2]() { + } +} +class SequenceExpressionAsKey { + [(n1, n2)]() { + } +} diff --git a/test/compare-acorn-es6/class-declaration.expected.min.js b/test/compare-acorn-es6/class-declaration.expected.min.js new file mode 100644 index 00000000..496f2f81 --- /dev/null +++ b/test/compare-acorn-es6/class-declaration.expected.min.js @@ -0,0 +1 @@ +class ComputedKey{[n1+n2](){}}class AssignmentExpressionAsKey{[n1=n2](){}}class SequenceExpressionAsKey{[(n1,n2)](){}} diff --git a/test/compare-acorn-es6/class-declaration.js b/test/compare-acorn-es6/class-declaration.js new file mode 100644 index 00000000..db15285f --- /dev/null +++ b/test/compare-acorn-es6/class-declaration.js @@ -0,0 +1,9 @@ +class ComputedKey { + [n1 + n2]() {} +} +class AssignmentExpressionAsKey { + [n1 = n2]() {} +} +class SequenceExpressionAsKey { + [(n1, n2)]() {} +} \ No newline at end of file