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