add Terminatorless alias key for node expression wrappers that don't accept new lines

This commit is contained in:
Sebastian McKenzie 2015-04-30 13:56:42 +01:00
parent 471d60e5cd
commit 713845d14c
3 changed files with 8 additions and 19 deletions

View File

@ -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("(");
}

View File

@ -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);
}
}

View File

@ -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"],