"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var nextHandle = 1; var RESOLVED = (function () { return Promise.resolve(); })(); var activeHandles = {}; function findAndClearHandle(handle) { if (handle in activeHandles) { delete activeHandles[handle]; return true; } return false; } exports.Immediate = { setImmediate: function (cb) { var handle = nextHandle++; activeHandles[handle] = true; RESOLVED.then(function () { return findAndClearHandle(handle) && cb(); }); return handle; }, clearImmediate: function (handle) { findAndClearHandle(handle); }, }; exports.TestTools = { pending: function () { return Object.keys(activeHandles).length; } }; //# sourceMappingURL=Immediate.js.map