From ab4157db601f36f433305da865ef891f48d95e52 Mon Sep 17 00:00:00 2001 From: Graeme Yeates Date: Thu, 2 Jul 2015 17:55:00 -0400 Subject: [PATCH] once: ensure fn is gced --- lib/async.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/async.js b/lib/async.js index 67eb379eb..342dcda05 100644 --- a/lib/async.js +++ b/lib/async.js @@ -30,20 +30,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; }; }