s.emitDestroy(); } }); } const defaultMicrotaskResourceOpts = { requireManualDestroy: true }; function queueMicrotask(callback) { validateFunction(callback, 'callback'); const asyncResource = new AsyncResource( 'Microtask', defaultMicrotaskResourceOpts, ); asyncResource.callback = callback; enqueueMicrotask(FunctionPrototypeBind(runMicrotask, asyncResource)); } module.exports = { setupTaskQueue() { // Sets the per-isolate promise rejection callback listenForRejections(); // Sets the callback to be run in every tick. setTickCallback(processTicksAndRejections); return { nextTick, runNextTicks, }; }, queueMicrotask, };