node/test/parallel/test-timers-timeout-to-interval.js
Anatoli Papirovski 568b6a5c9e
timers: be more defensive with intervals
It's possible for user-code to flip an existing timeout to
be an interval during its execution, in which case the
current code would crash due to start being undefined. Fix
this by providing a default start value within rearm.

PR-URL: https://github.com/nodejs/node/pull/18579
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2018-02-08 09:01:54 -05:00

13 lines
320 B
JavaScript

'use strict';
const common = require('../common');
// This isn't officially supported but nonetheless is something that is
// currently possible and as such it shouldn't cause the process to crash
const t = setTimeout(common.mustCall(() => {
if (t._repeat) {
clearInterval(t);
}
t._repeat = true;
}, 2), 1);