It occurs to me that Array.shift() is probably slow.

This commit is contained in:
Zixaphir 2014-01-07 14:23:27 -07:00
parent 31e409f361
commit 073887e515
3 changed files with 14 additions and 11 deletions

View File

@ -12578,18 +12578,19 @@
}
},
callbackNodesDB: function(klass, nodes, cb) {
var callbacks, errors, len, softTask;
var callbacks, errors, i, len, softTask;
errors = null;
len = 0;
i = 0;
callbacks = klass.callbacks;
softTask = function() {
var node;
node = nodes.shift();
node = nodes[i++];
callbacks.execute(node);
if (!--len && cb) {
if (len === i && cb) {
return cb();
}
if (!(len % 7)) {
if (!(i % 7)) {
return setTimeout(softTask, 0);
} else {
return softTask();

View File

@ -12552,18 +12552,19 @@
}
},
callbackNodesDB: function(klass, nodes, cb) {
var callbacks, errors, len, softTask;
var callbacks, errors, i, len, softTask;
errors = null;
len = 0;
i = 0;
callbacks = klass.callbacks;
softTask = function() {
var node;
node = nodes.shift();
node = nodes[i++];
callbacks.execute(node);
if (!--len && cb) {
if (len === i && cb) {
return cb();
}
if (!(len % 7)) {
if (!(i % 7)) {
return setTimeout(softTask, 0);
} else {
return softTask();

View File

@ -238,14 +238,15 @@ Main =
callbackNodesDB: (klass, nodes, cb) ->
errors = null
len = 0
i = 0
{callbacks} = klass
softTask = ->
node = nodes.shift()
node = nodes[i++]
callbacks.execute node
return cb() if not --len and cb
unless len % 7
return cb() if len is i and cb
unless i % 7
setTimeout softTask, 0
else
softTask()