Class StatementFusion

java.lang.Object
com.google.javascript.jscomp.StatementFusion

public class StatementFusion extends Object
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 Details

    • StatementFusion

      public StatementFusion()
  • Method Details

    • report

      protected void report(DiagnosticType diagnostic, Node n)
      Helper method for reporting an error to the compiler when applying a peephole optimization.
      Parameters:
      diagnostic - The error type
      n - 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

      protected 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.
    • 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?)