class StatementFusion extends AbstractPeepholeOptimization
PeepholeMinimizeConditions.| Modifier and Type | Field and Description |
|---|---|
private boolean |
favorsCommaOverSemiColon |
static boolean |
SHOULD_FAVOR_COMMA_OVER_SEMI_COLON |
| Constructor and Description |
|---|
StatementFusion() |
StatementFusion(boolean favorsCommaOverSemiColon) |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
canFuseIntoOneStatement(Node block) |
private static void |
fuseExpressionIntoControlFlowStatement(Node before,
Node control) |
protected static Node |
fuseExpressionIntoExpression(Node exp1,
Node exp2) |
protected static void |
fuseExpresssonIntoFirstChild(Node exp,
Node stmt) |
protected static void |
fuseExpresssonIntoSecondChild(Node exp,
Node stmt) |
private static Node |
fuseIntoOneStatement(Node parent,
Node first,
Node last)
Given a block, fuse a list of statements with comma's.
|
private boolean |
isFusableControlStatement(Node n) |
(package private) Node |
optimizeSubtree(Node n)
Given a node to optimize and a traversal, optimize the node.
|
(package private) Node |
tryFuseStatements(Node n) |
(package private) Node |
tryFuseStatementsAggressively(Node n) |
areDeclaredGlobalExternsOnWindow, areNodesEqualForInlining, beginTraversal, endTraversal, getCodingConvention, isASTNormalized, isEcmaScript5OrGreater, mayEffectMutableState, mayHaveSideEffects, nodeTypeMayHaveSideEffects, report, reportCodeChangepublic static final boolean SHOULD_FAVOR_COMMA_OVER_SEMI_COLON
private final boolean favorsCommaOverSemiColon
public StatementFusion()
public StatementFusion(boolean favorsCommaOverSemiColon)
Node optimizeSubtree(Node n)
AbstractPeepholeOptimizationoptimizeSubtree in class AbstractPeepholeOptimizationn - The subtree that will be optimized.subtree.private boolean canFuseIntoOneStatement(Node block)
private boolean isFusableControlStatement(Node n)
private static Node fuseIntoOneStatement(Node parent, Node first, Node last)
parent - The parent that contains the statements.first - The first statement to fuse (inclusive)last - The last statement to fuse (exclusive)private static void fuseExpressionIntoControlFlowStatement(Node before, Node control)
protected static Node fuseExpressionIntoExpression(Node exp1, Node exp2)
protected static void fuseExpresssonIntoFirstChild(Node exp, Node stmt)