TimeOut object in JS
function Timeout(callback, after, args, isRepeat, isUnrefed) {
after *= 1; // coalesce to number or NaN
if (!(after >= 1 && after <= TIMEOUT_MAX)) {
// ...redacted...
after = 1; // schedule on next tick, follows browser behavior
}
this._called = false;
// ...redacted...
this._onTimeout = callback;
// ...redacted...
}