aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-10-23 16:28:18 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-10-23 16:28:18 -0700
commitcdbbbac7b5edb6b3eee4a126056fd464daaa87df (patch)
tree4ce48a42531e47ca6408583abd7331f657d92026
parent84a4cd4557edeca0ada7b0c61fb4d1a3e933af2b (diff)
misc eliminator optimizations
-rw-r--r--tools/eliminator.js11
1 files changed, 7 insertions, 4 deletions
diff --git a/tools/eliminator.js b/tools/eliminator.js
index 7a994f4e..4d668eae 100644
--- a/tools/eliminator.js
+++ b/tools/eliminator.js
@@ -170,9 +170,11 @@ function Eliminator(func) {
this.calculateBasicVarStats = function() {
traverse(this.body, function(node, type) {
if (type === 'var') {
- for (var i = 0; i < node[1].length; i++) {
- var varName = node[1][i][0];
- var varValue = node[1][i][1];
+ var node1 = node[1];
+ for (var i = 0; i < node1.length; i++) {
+ var node1i = node1[i];
+ var varName = node1i[0];
+ var varValue = node1i[1];
that.isLocal[varName] = true;
if (!varValue) varValue = ['name', 'undefined']; // XXX share?
that.isSingleDef[varName] = !that.isSingleDef.hasOwnProperty(varName);
@@ -232,7 +234,8 @@ function Eliminator(func) {
var targets = this.affects[source];
for (var target in targets) {
if (todo[target]) {
- for (target2 in this.affects[target]) {
+ var this_affects_target = this.affects[target];
+ for (target2 in this_affects_target) {
if (!targets[target2]) {
if (!this.isLocal[source]) this.dependsOnAGlobal[target2] = true;
targets[target2] = true;