|
# No semicolons |
|
|
|
x |
|
if (a) { |
|
var b = c |
|
d |
|
} else |
|
e |
|
|
|
==> |
|
|
|
Script( |
|
ExpressionStatement(VariableName), |
|
IfStatement(if,ParenthesizedExpression(VariableName),Block( |
|
VariableDeclaration(var,VariableDefinition,Equals,VariableName), |
|
ExpressionStatement(VariableName)), |
|
else,ExpressionStatement(VariableName))) |
|
|
|
# Continued expressions on new line |
|
|
|
x |
|
+ 2 |
|
foo |
|
(bar) |
|
|
|
==> |
|
|
|
Script( |
|
ExpressionStatement(BinaryExpression(VariableName,ArithOp,Number)), |
|
ExpressionStatement(CallExpression(VariableName,ArgList(VariableName)))) |
|
|
|
# Doesn't parse postfix ops on a new line |
|
|
|
x |
|
++y |
|
|
|
==> |
|
|
|
Script( |
|
ExpressionStatement(VariableName), |
|
ExpressionStatement(UnaryExpression(ArithOp,VariableName))) |
|
|
|
# Eagerly cut return/break/continue |
|
|
|
return 2 |
|
return |
|
2 |
|
continue foo |
|
continue |
|
foo |
|
break bar |
|
break |
|
bar |
|
|
|
==> |
|
|
|
Script( |
|
ReturnStatement(return,Number), |
|
ReturnStatement(return), |
|
ExpressionStatement(Number), |
|
ContinueStatement(continue,Label), |
|
ContinueStatement(continue), |
|
ExpressionStatement(VariableName), |
|
BreakStatement(break,Label), |
|
BreakStatement(break), |
|
ExpressionStatement(VariableName)) |
|
|
|
# Cut return regardless of whitespace |
|
|
|
{ return } |
|
|
|
return // foo |
|
; |
|
|
|
==> |
|
|
|
Script(Block(ReturnStatement(return)),ReturnStatement(return,LineComment)) |
|
|