From dc92a16e7f83fe2d07f7ab2f798676bd975943da Mon Sep 17 00:00:00 2001 From: Logan Smyth Date: Sun, 17 Apr 2016 01:49:50 -0700 Subject: [PATCH] Fast path for newline processing. --- packages/babel-generator/src/printer.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/babel-generator/src/printer.js b/packages/babel-generator/src/printer.js index a8c843d82c..d4c8e5e0da 100644 --- a/packages/babel-generator/src/printer.js +++ b/packages/babel-generator/src/printer.js @@ -211,10 +211,20 @@ export default class Printer extends Buffer { } _printNewline(leading, node, parent, opts) { + // Fast path since 'this.newline' does nothing when not tracking lines. + if (this.format.retainLines || this.format.compact) return; + if (!opts.statement && !n.isUserWhitespacable(node, parent)) { return; } + // Fast path for concise since 'this.newline' just inserts a space when + // concise formatting is in use. + if (this.format.concise) { + this.space(); + return; + } + let lines = 0; if (node.start != null && !node._ignoreUserWhitespace && this.tokens.length) {