diff options
author | Graeme Yeates <yeatesgraeme@gmail.com> | 2015-07-02 17:55:00 -0400 |
---|---|---|
committer | Graeme Yeates <yeatesgraeme@gmail.com> | 2015-07-03 19:44:25 -0400 |
commit | 40270285fde3049e0457ff37dbeb55ca29984e90 (patch) | |
tree | 514b1e565903f3c888cbd235f4115c5c1493b1d3 | |
parent | a835c67ba5aa3f14294642f77af4a8538fe7f69a (diff) | |
download | async-40270285fde3049e0457ff37dbeb55ca29984e90.tar.gz |
once: ensure fn is gced
-rw-r--r-- | lib/async.js | 10 |
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; }; } |