From 713845d14c17d6d3770d0c450f7725ebe114f408 Mon Sep 17 00:00:00 2001 From: Sebastian McKenzie Date: Thu, 30 Apr 2015 13:56:42 +0100 Subject: [PATCH] add Terminatorless alias key for node expression wrappers that don't accept new lines --- src/babel/generation/index.js | 4 +--- src/babel/generation/node/index.js | 11 +---------- src/babel/types/alias-keys.json | 12 ++++++------ 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/babel/generation/index.js b/src/babel/generation/index.js index 09d74c4fe0..26b7f749f7 100644 --- a/src/babel/generation/index.js +++ b/src/babel/generation/index.js @@ -151,9 +151,7 @@ class CodeGenerator { // catch up to this nodes newline if we're behind if (node.loc && this.format.retainLines && this.buffer.buf) { var needsParens = false; - if (parent && (this.position.line < node.loc.start.line) && - (t.isContinueStatement(parent) || t.isBreakStatement(parent) || - t.isReturnStatement(parent) || t.isThrowStatement(parent))) { + if (parent && (this.position.line < node.loc.start.line) && t.isTerminatorless(parent)) { needsParens = true; this._push("("); } diff --git a/src/babel/generation/node/index.js b/src/babel/generation/node/index.js index 8b655bb9b3..70299d814f 100644 --- a/src/babel/generation/node/index.js +++ b/src/babel/generation/node/index.js @@ -85,16 +85,7 @@ export default class Node { return false; } - if (t.isYieldExpression(parent) || t.isAwaitExpression(parent)) { - return true; - } - - if (t.isContinueStatement(parent) || t.isBreakStatement(parent) || - t.isReturnStatement(parent) || t.isThrowStatement(parent)) { - return true; - } - - return false; + return t.isTerminatorless(parent); } } diff --git a/src/babel/types/alias-keys.json b/src/babel/types/alias-keys.json index bfcc752871..3dcc642134 100644 --- a/src/babel/types/alias-keys.json +++ b/src/babel/types/alias-keys.json @@ -1,13 +1,13 @@ { "ExpressionStatement": ["Statement"], - "BreakStatement": ["Statement"], - "ContinueStatement": ["Statement"], + "BreakStatement": ["Statement", "Terminatorless"], + "ContinueStatement": ["Statement", "Terminatorless"], "DebuggerStatement": ["Statement"], "DoWhileStatement": ["Statement", "Loop", "While", "Scopable"], "IfStatement": ["Statement"], - "ReturnStatement": ["Statement"], + "ReturnStatement": ["Statement", "Terminatorless"], "SwitchStatement": ["Statement", "Scopable"], - "ThrowStatement": ["Statement"], + "ThrowStatement": ["Statement", "Terminatorless"], "TryStatement": ["Statement"], "WhileStatement": ["Statement", "Loop", "While", "Scopable"], "WithStatement": ["Statement"], @@ -56,7 +56,7 @@ "ArrayExpression": ["Expression"], "AssignmentExpression": ["Expression"], - "AwaitExpression": ["Expression"], + "AwaitExpression": ["Expression", "Terminatorless"], "CallExpression": ["Expression"], "ComprehensionExpression": ["Expression", "Scopable"], "ConditionalExpression": ["Expression"], @@ -74,7 +74,7 @@ "UpdateExpression": ["Expression"], "JSXEmptyExpression": ["Expression"], "JSXMemberExpression": ["Expression"], - "YieldExpression": ["Expression"], + "YieldExpression": ["Expression", "Terminatorless"], "AnyTypeAnnotation": ["Flow"], "ArrayTypeAnnotation": ["Flow"],