From 0574aa90d696e22e5c870192ba8ec22e4e0e9eb2 Mon Sep 17 00:00:00 2001 From: Graeme Yeates Date: Sat, 1 Aug 2015 15:37:41 -0400 Subject: [PATCH] Allow map to return objects --- lib/async.js | 3 ++- test/test-async.js | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/async.js b/lib/async.js index 9c2b6afbf..208e60223 100644 --- a/lib/async.js +++ b/lib/async.js @@ -353,7 +353,8 @@ function _asyncMap(eachfn, arr, iterator, callback) { callback = _once(callback || noop); - var results = []; + arr = arr || []; + var results = _isArrayLike(arr) ? [] : {}; eachfn(arr, function (value, index, callback) { iterator(value, function (err, v) { results[index] = v; diff --git a/test/test-async.js b/test/test-async.js index dc7d9497c..23aa2b99f 100755 --- a/test/test-async.js +++ b/test/test-async.js @@ -1810,6 +1810,7 @@ exports['map'] = { callback(null, val * 2); }, function (err, result) { if (err) throw err; + test.equals(Object.prototype.toString.call(result), '[object Object]'); test.same(result, {a: 2, b: 4, c: 6}); test.done(); });