@Override public void addDeclaredName(String name, boolean hoisted) { checkState(!name.equals(ARGUMENTS)); if (hoisted && hoistRenamer != this) { hoistRenamer.addDeclaredName(name, hoisted); } else { if (!declarations.containsKey(name)) { declarations.put(name, getUniqueName(name)); } } }
@Override public void addDeclaredName(String name, boolean hoisted) { Preconditions.checkState(!name.equals(ARGUMENTS)); if (hoisted && hoistRenamer != this) { hoistRenamer.addDeclaredName(name, hoisted); } else { if (!declarations.containsKey(name)) { declarations.put(name, getUniqueName(name)); } } }
@Override public void addDeclaredName(String name, boolean hoisted) { if (whitelist.contains(name)) { delegate.addDeclaredName(name, hoisted); } }
if (name != null && !name.isEmpty() && parent != null && !NodeUtil.isFunctionDeclaration(n)) { renamer.addDeclaredName(name, false); renamer.addDeclaredName(name, true); renamer.addDeclaredName(name, false);
/** * Adds a name to the map of names declared in this scope. */ @Override public void addDeclaredName(String name, boolean hoisted) { if (hoisted && hoistRenamer != this) { hoistRenamer.addDeclaredName(name, true); } else { if (!name.equals(ARGUMENTS)) { if (global) { reserveName(name); } else { // It hasn't been declared locally yet, so increment the count. if (!declarations.containsKey(name)) { int id = incrementNameCount(name); String newName = null; if (id != 0) { newName = getUniqueName(name, id); } declarations.put(name, newName); } } } } }
/** * Traverses the current scope and collects declared names. Does not * decent into functions or add CATCH exceptions. */ private void findDeclaredNames(Node n, Node parent, Renamer renamer) { // Do a shallow traversal, so don't traverse into function declarations, // except for the name of the function itself. if (parent == null || !parent.isFunction() || n == parent.getFirstChild()) { if (NodeUtil.isVarDeclaration(n)) { renamer.addDeclaredName(n.getString(), true); } else if (NodeUtil.isBlockScopedDeclaration(n) && !parent.isCatch()) { renamer.addDeclaredName(n.getString(), false); } else if (NodeUtil.isFunctionDeclaration(n)) { Node nameNode = n.getFirstChild(); renamer.addDeclaredName(nameNode.getString(), true); } for (Node c = n.getFirstChild(); c != null; c = c.getNext()) { findDeclaredNames(c, n, renamer); } } }
/** * Adds a name to the map of names declared in this scope. */ @Override public void addDeclaredName(String name, boolean hoisted) { if (hoisted && hoistRenamer != this) { hoistRenamer.addDeclaredName(name, true); } else { if (!name.equals(ARGUMENTS)) { if (global) { reserveName(name); } else { // It hasn't been declared locally yet, so increment the count. if (!declarations.containsKey(name)) { int id = incrementNameCount(name); String newName = null; if (id != 0) { newName = getUniqueName(name, id); } declarations.put(name, newName); } } } } }
/** * Rename any local shadows of namespaces. * This should be a very rare occurrence, so only do this traversal * if we know that we need it. */ private void renameNamespaceShadows(NodeTraversal t) { if (hasNamespaceShadows) { MakeDeclaredNamesUnique.Renamer renamer = new MakeDeclaredNamesUnique.WhitelistedRenamer( new MakeDeclaredNamesUnique.ContextualRenamer(), forbiddenLocals); for (String s : forbiddenLocals) { renamer.addDeclaredName(s, false); } MakeDeclaredNamesUnique uniquifier = new MakeDeclaredNamesUnique(renamer); Node parent = t.getScopeRoot().getParent(); NodeTraversal.traverseEs6(compiler, parent, uniquifier); } }
/** * Rename any local shadows of namespaces. * This should be a very rare occurrence, so only do this traversal * if we know that we need it. */ private void renameNamespaceShadows(NodeTraversal t) { checkState(NodeUtil.isFunctionBlock(t.getScopeRoot()), t.getScopeRoot()); if (hasNamespaceShadows) { MakeDeclaredNamesUnique.Renamer renamer = new MakeDeclaredNamesUnique.WhitelistedRenamer( new MakeDeclaredNamesUnique.ContextualRenamer(), forbiddenLocals); for (String s : forbiddenLocals) { renamer.addDeclaredName(s, false); } MakeDeclaredNamesUnique uniquifier = new MakeDeclaredNamesUnique(renamer); NodeTraversal.traverseScopeRoots( compiler, null, ImmutableList.of(t.getScopeRoot()), uniquifier, true); } }
@Override public void addDeclaredName(String name, boolean hoisted) { if (whitelist.contains(name)) { delegate.addDeclaredName(name, hoisted); } }
/** * Traverses the current scope and collects declared names by calling {@code addDeclaredName} on * the {@code Renamer} that is at the top of the {@code renamerStack}. */ private void findDeclaredNames(NodeTraversal t, Node n) { checkState(NodeUtil.createsScope(n) || n.isScript(), n); for (Var v : t.getScope().getVarIterable()) { renamerStack.peek().addDeclaredName(v.getName(), false); } }