From f3747ee91e3025b46e29b2128bbb83f63cbb7f2a Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sat, 7 Mar 2015 18:48:17 +0100 Subject: [PATCH] Fix #16 name collision with NFEs --- src/JSqueeze.php | 1 + tests/uglifyjs/expected/mangle.js | 2 +- tests/uglifyjs/expected/tchwork-16.js | 1 + tests/uglifyjs/test/mangle.js | 1 + tests/uglifyjs/test/tchwork-16.js | 3 +++ 5 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 tests/uglifyjs/expected/tchwork-16.js create mode 100644 tests/uglifyjs/test/tchwork-16.js diff --git a/src/JSqueeze.php b/src/JSqueeze.php index fc92ce4..b85edeb 100644 --- a/src/JSqueeze.php +++ b/src/JSqueeze.php @@ -857,6 +857,7 @@ protected function renameVars(&$tree, $root) else { arsort($tree['local']); + if (false !== $tree['nfe']) $tree['used'][] = $tree['local'][$tree['nfe']]; foreach ($tree['local'] as $var => $root) if ($tree['nfe'] !== $var) diff --git a/tests/uglifyjs/expected/mangle.js b/tests/uglifyjs/expected/mangle.js index 6e51d91..eb8f7f7 100644 --- a/tests/uglifyjs/expected/mangle.js +++ b/tests/uglifyjs/expected/mangle.js @@ -1 +1 @@ -(function(){var r=function n(r,n,n){return n}}()); +(function(){var u=function n(r,n,u){return n};u=fun}()); diff --git a/tests/uglifyjs/expected/tchwork-16.js b/tests/uglifyjs/expected/tchwork-16.js new file mode 100644 index 0000000..507b897 --- /dev/null +++ b/tests/uglifyjs/expected/tchwork-16.js @@ -0,0 +1 @@ +;foo=function n(o,f){n(o+'nnn')}; diff --git a/tests/uglifyjs/test/mangle.js b/tests/uglifyjs/test/mangle.js index c271a26..7371d8e 100644 --- a/tests/uglifyjs/test/mangle.js +++ b/tests/uglifyjs/test/mangle.js @@ -2,4 +2,5 @@ var x = function fun(a, fun, b) { return fun; }; + x = fun; }()); diff --git a/tests/uglifyjs/test/tchwork-16.js b/tests/uglifyjs/test/tchwork-16.js new file mode 100644 index 0000000..f2293e3 --- /dev/null +++ b/tests/uglifyjs/test/tchwork-16.js @@ -0,0 +1,3 @@ +foo = function bar(a, b) { + bar(a + "nnn"); +};