/** Creates a node traversal using the specified callback interface. */
 public NodeTraversal(AbstractCompiler compiler, Callback cb) {
   this(
       compiler,
       cb,
       compiler.getLanguageMode().isEs6OrHigher()
           ? new Es6SyntacticScopeCreator(compiler)
           : SyntacticScopeCreator.makeUntyped(compiler));
 }
 static void traverseRootsTyped(AbstractCompiler compiler, Callback cb, Node externs, Node root) {
   NodeTraversal t = new NodeTraversal(compiler, cb, SyntacticScopeCreator.makeTyped(compiler));
   t.traverseRoots(externs, root);
 }
 public static void traverseTyped(AbstractCompiler compiler, Node root, Callback cb) {
   NodeTraversal t = new NodeTraversal(compiler, cb, SyntacticScopeCreator.makeTyped(compiler));
   t.traverse(root);
 }