diff --git a/packages/babel-generator/src/generators/expressions.js b/packages/babel-generator/src/generators/expressions.js index 36f0485a91..048c5e2adb 100644 --- a/packages/babel-generator/src/generators/expressions.js +++ b/packages/babel-generator/src/generators/expressions.js @@ -157,7 +157,7 @@ export function AssignmentPattern(node: Object) { export function AssignmentExpression(node: Object, parent: Object) { // Somewhere inside a for statement `init` node but doesn't usually // needs a paren except for `in` expressions: `for (a in b ? a : b;;)` - let parens = this._inForStatementInitCounter && node.operator === "in" && + let parens = this.inForStatementInitCounter && node.operator === "in" && !n.needsParens(node, parent); if (parens) { diff --git a/packages/babel-generator/src/generators/statements.js b/packages/babel-generator/src/generators/statements.js index e4aa15fd50..c3229db035 100644 --- a/packages/babel-generator/src/generators/statements.js +++ b/packages/babel-generator/src/generators/statements.js @@ -48,9 +48,9 @@ export function ForStatement(node: Object) { this.keyword("for"); this.token("("); - this._inForStatementInitCounter++; + this.inForStatementInitCounter++; this.print(node.init, node); - this._inForStatementInitCounter--; + this.inForStatementInitCounter--; this.token(";"); if (node.test) { diff --git a/packages/babel-generator/src/index.js b/packages/babel-generator/src/index.js index 11eb3409c6..d45137d187 100644 --- a/packages/babel-generator/src/index.js +++ b/packages/babel-generator/src/index.js @@ -22,7 +22,6 @@ class Generator extends Printer { this.opts = opts; this.ast = ast; - this._inForStatementInitCounter = 0; this._whitespace = tokens.length > 0 ? new Whitespace(tokens) : null; } diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index e99d9cf8dd..0662eb30ce 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -15,6 +15,7 @@ export default class Printer { this._printedCommentStarts = {}; this._parenPushNewlineState = null; this._indent = 0; + this.inForStatementInitCounter = 0; } _printedCommentStarts: Object;