'use strict'; var noop = require('./noop'); module.exports = function once (fn) { var disposed; function disposable () { if (disposed) { return; } disposed = true; (fn || noop).apply(null, arguments); } disposable.discard = function () { disposed = true; }; return disposable; };