From 9be442c2d1ce65a8e21f85db81e6d0e2ad55478b Mon Sep 17 00:00:00 2001 From: mltucker Date: Wed, 17 Apr 2013 23:42:48 +0300 Subject: [PATCH 1/2] Fix async.setImmediate browser fallback. --- lib/async.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/async.js b/lib/async.js index 16e88c674..6bde2b866 100755 --- a/lib/async.js +++ b/lib/async.js @@ -79,10 +79,10 @@ async.nextTick = setImmediate; } else { - async.setImmediate = async.nextTick; async.nextTick = function (fn) { setTimeout(fn, 0); }; + async.setImmediate = async.nextTick; } } else { @@ -136,12 +136,12 @@ callback(null); } else { - iterate(); + setImmediate(iterate); } } }); }; - iterate(); + setImmediate(iterate); }; async.forEachSeries = async.eachSeries; From 9e274a12d2be06c1ef27fe4eee940138d1da6c63 Mon Sep 17 00:00:00 2001 From: mltucker Date: Wed, 17 Apr 2013 23:46:32 +0300 Subject: [PATCH 2/2] Use setImmediate in eachSeries. This fixes stack overflows on large lists in node.js. --- lib/async.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/async.js b/lib/async.js index 6bde2b866..b90e3df7c 100755 --- a/lib/async.js +++ b/lib/async.js @@ -136,12 +136,12 @@ callback(null); } else { - setImmediate(iterate); + async.setImmediate(iterate); } } }); }; - setImmediate(iterate); + async.setImmediate(iterate); }; async.forEachSeries = async.eachSeries;