private void checkNormalization(Node externs, Node root) {
    // Verify nothing has inappropriately denormalize the AST.
    CodeChangeHandler handler = new ForbiddenChange();
    compiler.addChangeHandler(handler);

    // TODO(johnlenz): Change these normalization checks Preconditions and
    // Exceptions into Errors so that it is easier to find the root cause
    // when there are cascading issues.
    new PrepareAst(compiler, true).process(null, root);
    if (compiler.getLifeCycleStage().isNormalized()) {
      (new Normalize(compiler, true)).process(externs, root);

      if (compiler.getLifeCycleStage().isNormalizedUnobfuscated()) {
        boolean checkUserDeclarations = true;
        CompilerPass pass = new Normalize.VerifyConstants(compiler, checkUserDeclarations);
        pass.process(externs, root);
      }
    }

    compiler.removeChangeHandler(handler);
  }
private void checkNormalization ( Node externs , Node root ) { CodeChangeHandler handler = new ForbiddenChange ( ) ; compiler . addChangeHandler ( handler ) ; new PrepareAst ( compiler , true ) . process ( null , root ) ; if ( compiler . getLifeCycleStage ( ) . isNormalized ( ) ) { ( new Normalize ( compiler , true ) ) . process ( externs , root ) ; if ( compiler . getLifeCycleStage ( ) . isNormalizedUnobfuscated ( ) ) { boolean checkUserDeclarations = true ; CompilerPass pass = new Normalize . VerifyConstants ( compiler , checkUserDeclarations ) ; pass . process ( externs , root ) ; } } compiler . removeChangeHandler ( handler ) ; }
Verifies that the normalization pass does nothing on an already-normalized tree.