UNPKG

marko

Version:

UI Components + streaming, async, high performance, HTML templating for Node.js and the browser.

32 lines (27 loc) 621 B
var queueMicrotask = require("./queueMicrotask"); var count = 0; var queue = new Set(); function noop() {} exports.___setImmediate = function setImmediate(cb) { queue.add(cb); if (!count) { queueMicrotaskInternal(noop); } return cb; }; exports.___clearImmediate = function clearImmediate(id) { queue.delete(id); }; exports.___queueMicrotask = queueMicrotaskInternal; function queueMicrotaskInternal(cb) { count++; queueMicrotask(function () { if (--count === 0 && queue.size) { for (const fn of queue) { queueMicrotask(fn); } queue = new Set(); } cb(); }); }