diff options
author | alon@honor <none@none> | 2010-09-05 13:32:46 -0700 |
---|---|---|
committer | alon@honor <none@none> | 2010-09-05 13:32:46 -0700 |
commit | 545cad31eb074cc5040bb8a81ea3d9b7814587de (patch) | |
tree | 16e8258285451f74efb2dea647f154a98f22d327 | |
parent | e9358cc2acb9601fbf3bcbb5baf7952ed8e00168 (diff) |
optimize enzymatic loops
-rw-r--r-- | src/enzymatic.js | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/enzymatic.js b/src/enzymatic.js index ae677829..09c8cfc4 100644 --- a/src/enzymatic.js +++ b/src/enzymatic.js @@ -96,22 +96,22 @@ Substrate.prototype = { return outputs[0]; } results = results.concat(outputs.filter(function(output) { return !!output.__result__; })) -/* - this.items = this.items.filter(function(item) { PROF(); return selected.indexOf(item) == -1 }); - outputs.filter(function(output) { return !output.__result__; }).forEach(this.addItem, this); -*/ var nonResults = outputs.filter(function(output) { return !output.__result__; }); var keptUids = {}; - nonResults.forEach(function(s) { + for (var i = 0; i < nonResults.length; i++) { + var s = nonResults[i]; if (s.__uid__) { keptUids[s.__uid__] = true; } else { this.addItem(s); } - }, this); + } var droppedUids = {}; - selected.forEach(function(s) { if (!keptUids[s.__uid__]) droppedUids[s.__uid__] = true }); + for (var i = 0; i < selected.length; i++) { + var s = selected[i]; + if (!keptUids[s.__uid__]) droppedUids[s.__uid__] = true; + } this.items = this.items.filter(function(item) { if (!droppedUids[item.__uid__]) { return true; @@ -150,14 +150,15 @@ Zyme.prototype = { }, process: function(items) { var ret = []; - items.forEach(function(item) { + for (var i = 0; i < items.length; i++) { + var item = items[i]; try { ret = ret.concat(this.processItem(item)); } catch (e) { print("Exception in process(), current item is: " + dump(item)); throw e; } - }, this); + } return ret; }, processPairs: function(items, func) { |