code: 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);
    }
docs: Verifies that the normalization pass does nothing on an already-normalized tree.