var nextHandle = 1; var resolved; var activeHandles = {}; function findAndClearHandle(handle) { if (handle in activeHandles) { delete activeHandles[handle]; return true; } return false; } export var Immediate = { setImmediate: function (cb) { var handle = nextHandle++; activeHandles[handle] = true; if (!resolved) { resolved = Promise.resolve(); } resolved.then(function () { return findAndClearHandle(handle) && cb(); }); return handle; }, clearImmediate: function (handle) { findAndClearHandle(handle); }, }; export var TestTools = { pending: function () { return Object.keys(activeHandles).length; } }; //# sourceMappingURL=Immediate.js.map