JSFiddle - React, Tailwind, and code Playground
HTML
<script src='http://ls.zloirock.ru/core.min.js'></script>
JavaScript
function Y(fn){
function next(){
setImmediate.apply(global, [fn, next].concat(Array.from(arguments)));
}
next.apply(this, Array.slice(arguments, 1));
}
console.time('Y');
Y(function(next, num){
if(++num < 100000)next(num);
else console.timeEnd('Y');
}, 0);