diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-05-12 12:00:38 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-05-12 12:00:38 -0700 |
commit | 039705fdcfc7bf6d1fe5e51494c6880b484f7cf3 (patch) | |
tree | 4a84d2e3b1de9942aa9d797647df1ecbb289d367 /tools/js-optimizer.js | |
parent | d3ed0aeb7874477814cf61d3797abd4f69d2f7e7 (diff) |
handle multiple var defs of the same var in registerize
Diffstat (limited to 'tools/js-optimizer.js')
-rw-r--r-- | tools/js-optimizer.js | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/tools/js-optimizer.js b/tools/js-optimizer.js index 57d62339..f968fec2 100644 --- a/tools/js-optimizer.js +++ b/tools/js-optimizer.js @@ -1150,7 +1150,10 @@ function registerize(ast, conservative) { if (type == 'var') { node[1].forEach(function(arg) { var name = arg[0]; - varUses[name] = 1; + if (!varUses[name]) { // may have multiple var definitions + varUses[name] = 0; + } + varUses[name]++; }); } }); @@ -1174,7 +1177,7 @@ function registerize(ast, conservative) { var loopRegs = []; var loops = 0; function decUse(name) { - if (!varUses[name]) return varRegs[name]; // no uses left, but still need to replace the name if it has a register + if (!varUses[name]) return false; // no uses left, or not a relevant variable var reg = varRegs[name]; if (!reg) { // acquire register |