diff --git a/packages/babel-generator/src/node/parentheses.ts b/packages/babel-generator/src/node/parentheses.ts index bb651b6d2287..460767d0b638 100644 --- a/packages/babel-generator/src/node/parentheses.ts +++ b/packages/babel-generator/src/node/parentheses.ts @@ -5,6 +5,7 @@ import { isAwaitExpression, isBinary, isBinaryExpression, + isUpdateExpression, isCallExpression, isClassDeclaration, isClassExpression, @@ -414,6 +415,7 @@ function isFirstInContext( if ( (hasPostfixPart(node, parent) && !isNewExpression(parent)) || (isSequenceExpression(parent) && parent.expressions[0] === node) || + (isUpdateExpression(parent) && !parent.prefix) || isConditional(parent, { test: node }) || isBinary(parent, { left: node }) || isAssignmentExpression(parent, { left: node }) diff --git a/packages/babel-generator/test/fixtures/parentheses/unary-postfix/input.js b/packages/babel-generator/test/fixtures/parentheses/unary-postfix/input.js new file mode 100644 index 000000000000..1603497b5d89 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/unary-postfix/input.js @@ -0,0 +1 @@ +(function () { return {x: 24} }()).x++; diff --git a/packages/babel-generator/test/fixtures/parentheses/unary-postfix/output.js b/packages/babel-generator/test/fixtures/parentheses/unary-postfix/output.js new file mode 100644 index 000000000000..f07a72eed6f8 --- /dev/null +++ b/packages/babel-generator/test/fixtures/parentheses/unary-postfix/output.js @@ -0,0 +1,5 @@ +(function () { + return { + x: 24 + }; +})().x++; \ No newline at end of file