summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Yeates <yeatesgraeme@gmail.com>2015-07-02 17:55:00 -0400
committerGraeme Yeates <yeatesgraeme@gmail.com>2015-07-03 19:44:25 -0400
commit40270285fde3049e0457ff37dbeb55ca29984e90 (patch)
tree514b1e565903f3c888cbd235f4115c5c1493b1d3
parenta835c67ba5aa3f14294642f77af4a8538fe7f69a (diff)
downloadasync-40270285fde3049e0457ff37dbeb55ca29984e90.tar.gz
once: ensure fn is gced
-rw-r--r--lib/async.js10
1 files changed, 4 insertions, 6 deletions
diff --git a/lib/async.js b/lib/async.js
index 8560576..4da10a2 100644
--- a/lib/async.js
+++ b/lib/async.js
@@ -39,20 +39,18 @@
};
function only_once(fn) {
- var called = false;
return function() {
- if (called) throw new Error("Callback was already called.");
- called = true;
+ if (fn === null) throw new Error("Callback was already called.");
fn.apply(this, arguments);
+ fn = null;
};
}
function _once(fn) {
- var called = false;
return function() {
- if (called) return;
- called = true;
+ if (fn === null) return;
fn.apply(this, arguments);
+ fn = null;
};
}