JSFiddle - React, Tailwind, and code Playground

HTML

<script src="https://raw.github.com/JeffreyZhao/jscex/master/bin/dev/jscex-0.6.5.js"></script>
<script src="https://raw.github.com/JeffreyZhao/jscex/master/bin/dev/jscex-builderbase-0.6.5.js"></script>
<script src="https://raw.github.com/JeffreyZhao/jscex/master/bin/dev/jscex-async-0.6.5.js"></script>
<script src="https://raw.github.com/JeffreyZhao/jscex/master/bin/dev/jscex-async-powerpack-0.6.5.js"></script>
<script src="https://raw.github.com/JeffreyZhao/jscex/master/bin/dev/jscex-parser-0.6.5.js"></script>
<script src="https://raw.github.com/JeffreyZhao/jscex/master/bin/dev/jscex-jit-0.6.6.js"></script>
<div id="output"></div>
<button onclick="updateSync()">Run Sync</button>
<button onclick="updateAsync()">Run Async</button>

JavaScript

function updateSync() {
    for (var i = 0; i < 1000; i++) {
        document.getElementById('output').innerHTML = i;
    }
}

function updateAsync() {
    var update = eval(Jscex.compile('async', function() {

        for (var i = 0; i < 1000; i++) {
            document.getElementById('output').innerHTML = i;
            $await(Jscex.Async.sleep(0));  // sleep 0 ms to make it asynchronous
        }

    }));
    
    update().start();
}