Debounce & Throttle Functions

What advanced feature does this throttle implementation provide through its options parameter?
function throttle(func, limit, options = {}) {
  let lastRan, timeout;
  
  return function(...args) {
    if (!lastRan && options.leading === false) {
      lastRan = Date.now();
      return;
    }
    
    const now = Date.now();
    if (!lastRan || (now - lastRan) >= limit) {
      func.apply(this, args);
      lastRan = now;
    } else if (options.trailing !== false) {
      clearTimeout(timeout);
      timeout = setTimeout(() => {
        func.apply(this, args);
        lastRan = Date.now();
      }, limit - (now - lastRan));
    }
  };
}
Next Question (8/20)