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