diff --git a/packages/babel-generator/src/node/index.ts b/packages/babel-generator/src/node/index.ts index 28cc566e1500..5e477d318ac8 100644 --- a/packages/babel-generator/src/node/index.ts +++ b/packages/babel-generator/src/node/index.ts @@ -87,20 +87,23 @@ export function needsWhitespace( node = node.expression; } - if ((find(expandedWhitespaceNodes, node, parent) & type) !== 0) { - return true; - } - - const items = find(expandedWhitespaceList, node, parent); - if (items) { - for (let i = 0; i < items.length; i++) { - if (needsWhitespace(items[i], node, type)) { - return true; + let linesInfo: any = find(expandedWhitespaceNodes, node, parent); + + if (!linesInfo) { + const items = find(expandedWhitespaceList, node, parent); + if (items) { + for (let i = 0; i < items.length; i++) { + linesInfo = needsWhitespace(items[i], node, type); + if (linesInfo) break; } } } - return false; + if (typeof linesInfo === "number") { + return (linesInfo & type) !== 0; + } + + return linesInfo || false; } export function needsWhitespaceBefore(node: t.Node, parent: t.Node) {