docs: function (wait, fn) {
              var context,
                  args,
                  timeout,
                  timestamp,
                  result;
  
              function later() {
                  var last = util.now() - timestamp;
                  if (last < wait) {
                      timeout = setTimeout(later, wait - last);
                  } else {
                      timeout = null;
                      result = fn.apply(context, args);
                      context = args = null;
                  }
              }
  
              return function debounced() {
                  context = this;
                  args = arguments;
                  timestamp = util.now();
                  if (!timeout) {
                      timeout = setTimeout(later, wait);
                  }
                  return result;
              };
          }