Less checks and less misses? Performance and stability? Oh my.

This commit is contained in:
Zixaphir 2014-01-11 14:39:14 -07:00
parent 6bafef092b
commit bf80874f9f
3 changed files with 23 additions and 16 deletions

View File

@ -13108,19 +13108,22 @@
cbs = klass.callbacks; cbs = klass.callbacks;
fn = function() { fn = function() {
var node; var node;
node = nodes[i++]; if (!(node = nodes[i++])) {
return false;
}
cbs.execute(node); cbs.execute(node);
return i % 25; return i % 25;
}; };
softTask = function() { softTask = function() {
while (fn()) { while (fn()) {
continue;
}
if (len === i) { if (len === i) {
if (cb) { if (cb) {
cb(); cb();
} }
return; return;
} }
}
return setTimeout(softTask, 0); return setTimeout(softTask, 0);
}; };
len = nodes.length; len = nodes.length;

View File

@ -13085,19 +13085,22 @@
cbs = klass.callbacks; cbs = klass.callbacks;
fn = function() { fn = function() {
var node; var node;
node = nodes[i++]; if (!(node = nodes[i++])) {
return false;
}
cbs.execute(node); cbs.execute(node);
return i % 25; return i % 25;
}; };
softTask = function() { softTask = function() {
while (fn()) { while (fn()) {
continue;
}
if (len === i) { if (len === i) {
if (cb) { if (cb) {
cb(); cb();
} }
return; return;
} }
}
return setTimeout(softTask, 0); return setTimeout(softTask, 0);
}; };
len = nodes.length; len = nodes.length;

View File

@ -182,12 +182,13 @@ Main =
cbs = klass.callbacks cbs = klass.callbacks
fn = -> fn = ->
node = nodes[i++] return false unless node = nodes[i++]
cbs.execute node cbs.execute node
i % 25 i % 25
softTask = -> softTask = ->
while fn() while fn()
continue
if len is i if len is i
cb() if cb cb() if cb
return return