function (fn, rate) {
  var allowed = true;
  return function () {
    if (allowed) {
      allowed = false;
      fn.apply(null, [].slice.call(arguments, 0));
      setTimeout(function () {
        allowed = true;
      }, rate);
    }
  }
}
function (fn, rate) {
  var allowed = true;
  return function () {
    if (allowed) {
      allowed = false;
      fn.apply(null, [].slice.call(arguments, 0));
      setTimeout(function () {
        allowed = true;
      }, rate);
    }
  }
}
function ( fn , rate ) { var allowed = true ; return function ( ) { if ( allowed ) { allowed = false ; fn . apply ( null , [ ] . slice . call ( arguments , 0 ) ) ; setTimeout ( function ( ) { allowed = true ; } , rate ) ; } } }
used to fix fs.watch on windows triggering cascading events the function fn can only be called once per rate
used to fix fs . watch on windows triggering cascading events the function fn can only be called once per rate