summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Yeates <yeatesgraeme@gmail.com>2015-07-03 02:08:31 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2015-07-03 02:08:31 -0400
commita835c67ba5aa3f14294642f77af4a8538fe7f69a (patch)
treef5fa096dda1e3c019fae733133618fddd5e5f96e
parent6e6afb61fca7d4bf57a500c5cb8c030c5ff4e8b7 (diff)
downloadasync-a835c67ba5aa3f14294642f77af4a8538fe7f69a.tar.gz
Add _indexOf helper
-rw-r--r--lib/async.js17
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/async.js b/lib/async.js
index 45385f9..8560576 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -116,6 +116,13 @@
});
}
+ function _indexOf(arr, item) {
+ for (var i = 0; i < arr.length; i++) {
+ if (arr[i] === item) return i;
+ }
+ return -1;
+ }
+
var _keys = Object.keys || function (obj) {
var keys = [];
for (var k in obj) {
@@ -524,12 +531,8 @@
listeners.unshift(fn);
}
function removeListener(fn) {
- for (var i = 0; i < listeners.length; i += 1) {
- if (listeners[i] === fn) {
- listeners.splice(i, 1);
- return;
- }
- }
+ var idx = _indexOf(listeners, fn);
+ if (idx >= 0) listeners.splice(idx, 1);
}
function taskComplete() {
remainingTasks--;
@@ -571,7 +574,7 @@
if (!(dep = tasks[requires[len]])) {
throw new Error('Has inexistant dependency');
}
- if (_isArray(dep) && !!~dep.indexOf(k)) {
+ if (_isArray(dep) && _indexOf(dep, k) >= 0) {
throw new Error('Has cyclic dependencies');
}
}