From 739e2b1b3974047581c025cae4185e5b47eaac6e Mon Sep 17 00:00:00 2001 From: moz Date: Mon, 27 Jul 2015 10:02:51 -0700 Subject: [PATCH] Always traverse the FUNCTION node in renameNamespaceShadows() of ScopedAliases ------------- Created by MOE: http://code.google.com/p/moe-java MOE_MIGRATED_REVID=99189788 --- src/com/google/javascript/jscomp/ScopedAliases.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/google/javascript/jscomp/ScopedAliases.java b/src/com/google/javascript/jscomp/ScopedAliases.java index 4c9e5017c5c..9616a2844c0 100644 --- a/src/com/google/javascript/jscomp/ScopedAliases.java +++ b/src/com/google/javascript/jscomp/ScopedAliases.java @@ -538,7 +538,13 @@ private void renameNamespaceShadows(NodeTraversal t) { } MakeDeclaredNamesUnique uniquifier = new MakeDeclaredNamesUnique(renamer); - NodeTraversal.traverse(compiler, t.getScopeRoot(), uniquifier); + Node scopeRoot = t.getScopeRoot(); + // If in ES6 mode, pass the FUNCTION node as root for traversal to meet + // MakeDeclaredNamesUnique's assumption. + if (scopeRoot.isBlock() && scopeRoot.getParent().isFunction()) { + scopeRoot = scopeRoot.getParent(); + } + NodeTraversal.traverse(compiler, scopeRoot, uniquifier); } }