'use strict'; /* * This test is a regression test for joyent/node#8897. * * It tests some private implementation details that should not be * considered public interface. */ const common = require('../common'); const timers = require('timers'); const foo = { _onTimeout: common.mustNotCall('_onTimeout should not be called') }; const bar = { _onTimeout: common.mustCall(function() { timers.unenroll(foo); }) }; // We use timers with expiration times that are sufficiently apart to make // sure that they're not fired at the same time on platforms where the timer // resolution is a bit coarse (e.g Windows with a default resolution of ~15ms). timers.enroll(bar, 1); timers._unrefActive(bar); timers.enroll(foo, 50); timers._unrefActive(foo); // Keep the process open. setTimeout(() => {}, 100);