Package com.google.javascript.jscomp
Class StatementFusion
java.lang.Object
com.google.javascript.jscomp.StatementFusion
Tries to fuse all the statements in a block into a one statement by using
COMMAs.
Because COMMAs has the lowest precedence, we never need to insert
extra () around. Once we have only one statement in a block, we can then
eliminate a pair of {}'s. Further more, we can also fold a single
statement IF into && or create further opportunities for all the other
goodies in
PeepholeSubstituteAlternateSyntax
.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
areNodesEqualForInlining
(Node n1, Node n2) Are the nodes equal for the purpose of inlining? If type aware optimizations are on, type equality is checked.protected boolean
Is the current AST normalized? (e.g.protected void
report
(DiagnosticType diagnostic, Node n) Helper method for reporting an error to the compiler when applying a peephole optimization.protected void
Helper method for telling the compiler that something has changed.
-
Constructor Details
-
StatementFusion
public StatementFusion()
-
-
Method Details
-
report
Helper method for reporting an error to the compiler when applying a peephole optimization.- Parameters:
diagnostic
- The error typen
- The node for which the error should be reported
-
reportCodeChange
protected void reportCodeChange()Helper method for telling the compiler that something has changed. Subclasses must call these if they have changed the AST. -
areNodesEqualForInlining
Are the nodes equal for the purpose of inlining? If type aware optimizations are on, type equality is checked. -
isASTNormalized
protected boolean isASTNormalized()Is the current AST normalized? (e.g. has the Normalize pass been run and has the Denormalize pass not yet been run?)
-