| 12345678910111213141516171819202122232425262728293031323334353637 | 'use strict';/** * Wrap callbacks to prevent double execution. * * @param {Function} fn Function that should only be called once. * @returns {Function} A wrapped callback which prevents execution. * @api public */module.exports = function one(fn) {  var called = 0    , value;  /**   * The function that prevents double execution.   *   * @api private   */  function onetime() {    if (called) return value;    called = 1;    value = fn.apply(this, arguments);    fn = null;    return value;  }  //  // To make debugging more easy we want to use the name of the supplied  // function. So when you look at the functions that are assigned to event  // listeners you don't see a load of `onetime` functions but actually the  // names of the functions that this module will call.  //  onetime.displayName = fn.displayName || fn.name || onetime.displayName || onetime.name;  return onetime;};
 |