diff --git a/builds/4chan-X.user.js b/builds/4chan-X.user.js index 1c5127524..46b2882cd 100644 --- a/builds/4chan-X.user.js +++ b/builds/4chan-X.user.js @@ -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(); diff --git a/builds/crx/script.js b/builds/crx/script.js index 27e2e862c..832679fb3 100644 --- a/builds/crx/script.js +++ b/builds/crx/script.js @@ -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(); diff --git a/src/General/Main.coffee b/src/General/Main.coffee index f97e225eb..9420afedd 100755 --- a/src/General/Main.coffee +++ b/src/General/Main.coffee @@ -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()