Ensure that the delay >= 0 when detaching the timer from the queue. Fixes the
following assertion:
uv_timer_start: Assertion `timeout >= 0' failed.
No test included, it's timing sensitive.
Timeout.prototype.unref = function() {
if (!this._handle) {
+ var delay = this._when - Date.now();
+ if (delay < 0) delay = 0;
exports.unenroll(this);
this._handle = new Timer();
this._handle.ontimeout = this._onTimeout;
- this._handle.start(this._when - Date.now(), 0);
+ this._handle.start(delay, 0);
this._handle.domain = this.domain;
this._handle.unref();
} else {