// Based on: https://web.dev/optimize-long-tasks/ function postTask(task, opts) { return task && scheduler.postTask(task, opts); } function yieldToMain(task) { return new Promise(resolve => { setTimeout(() => { task && task(); resolve(); }, 0); }); } window.yieldToMain = 'scheduler' in window ? postTask : yieldToMain; // await yieldToMain(...);