function runOnDate(date, job) {
  var now = Date.now();
  var then = date.getTime();

  return lt.setTimeout(function() {
    if (then > Date.now())
      runOnDate(date, job);
    else
      job();
  }, (then < now ? 0 : then - now));
}
function runOnDate(date, job) {
  var now = Date.now();
  var then = date.getTime();

  return lt.setTimeout(function() {
    if (then > Date.now())
      runOnDate(date, job);
    else
      job();
  }, (then < now ? 0 : then - now));
}
function runOnDate ( date , job ) { var now = Date . now ( ) ; var then = date . getTime ( ) ; return lt . setTimeout ( function ( ) { if ( then > Date . now ( ) ) runOnDate ( date , job ) ; else job ( ) ; } , ( then < now ? 0 : then - now ) ) ; }
/* Date-based scheduler
/ * Date - based scheduler