Less recursion because recursion is slow.
This commit is contained in:
parent
d2311ab805
commit
86c2b07626
@ -12564,23 +12564,27 @@
|
||||
}
|
||||
},
|
||||
callbackNodesDB: function(klass, nodes, cb) {
|
||||
var callbacks, errors, i, len, softTask;
|
||||
var cbs, errors, fn, i, len, softTask;
|
||||
errors = null;
|
||||
len = 0;
|
||||
i = 0;
|
||||
callbacks = klass.callbacks;
|
||||
softTask = function() {
|
||||
cbs = klass.callbacks;
|
||||
fn = function() {
|
||||
var node;
|
||||
node = nodes[i++];
|
||||
callbacks.execute(node);
|
||||
if (len === i && cb) {
|
||||
return cb();
|
||||
}
|
||||
if (!(i % 7)) {
|
||||
return setTimeout(softTask, 0);
|
||||
} else {
|
||||
return softTask();
|
||||
cbs.execute(node);
|
||||
return i % 7;
|
||||
};
|
||||
softTask = function() {
|
||||
while (fn()) {
|
||||
if (len === i) {
|
||||
if (cb) {
|
||||
cb();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
return setTimeout(softTask, 0);
|
||||
};
|
||||
len = nodes.length;
|
||||
return softTask();
|
||||
|
||||
@ -12541,23 +12541,27 @@
|
||||
}
|
||||
},
|
||||
callbackNodesDB: function(klass, nodes, cb) {
|
||||
var callbacks, errors, i, len, softTask;
|
||||
var cbs, errors, fn, i, len, softTask;
|
||||
errors = null;
|
||||
len = 0;
|
||||
i = 0;
|
||||
callbacks = klass.callbacks;
|
||||
softTask = function() {
|
||||
cbs = klass.callbacks;
|
||||
fn = function() {
|
||||
var node;
|
||||
node = nodes[i++];
|
||||
callbacks.execute(node);
|
||||
if (len === i && cb) {
|
||||
return cb();
|
||||
}
|
||||
if (!(i % 7)) {
|
||||
return setTimeout(softTask, 0);
|
||||
} else {
|
||||
return softTask();
|
||||
cbs.execute(node);
|
||||
return i % 7;
|
||||
};
|
||||
softTask = function() {
|
||||
while (fn()) {
|
||||
if (len === i) {
|
||||
if (cb) {
|
||||
cb();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
return setTimeout(softTask, 0);
|
||||
};
|
||||
len = nodes.length;
|
||||
return softTask();
|
||||
|
||||
@ -241,16 +241,18 @@ Main =
|
||||
len = 0
|
||||
i = 0
|
||||
|
||||
{callbacks} = klass
|
||||
cbs = klass.callbacks
|
||||
fn = ->
|
||||
node = nodes[i++]
|
||||
cbs.execute node
|
||||
i % 7
|
||||
|
||||
softTask = ->
|
||||
node = nodes[i++]
|
||||
callbacks.execute node
|
||||
return cb() if len is i and cb
|
||||
unless i % 7
|
||||
setTimeout softTask, 0
|
||||
else
|
||||
softTask()
|
||||
while fn()
|
||||
if len is i
|
||||
cb() if cb
|
||||
return
|
||||
setTimeout softTask, 0
|
||||
|
||||
len = nodes.length
|
||||
softTask()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user