JSFiddle - React, Tailwind, and code Playground

JavaScript

(function(window, document undefined) {
    /*--common render(bug fixed by danny8376)--*/
    var render = {};
    (function (render) {
        var requestAnimationFrame = (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || function(a){return setTimeout(function() { a(Date.now()) }, 16);}).bind(window);
        var cancelAnimationFrame = (window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitcancelAnimationFrame || window.mscancelAnimationFrame || window.clearTimeout).bind(window);
        var _renderList = {};
        var _renderCount = 0;
        var _pageStartTime = -1;

        function _renderThreadFactory(id, renderer) {
            function sRenderThread(tick) {
                if (_renderList[id].playing) {
                    if (_renderList[id].start == -1) _renderList[id].start = tick;
                    renderer(tick - _renderList[id].start + _renderList[id].shift);
                    if (!_renderList[id]) return;
                    _renderList[id].frameId = requestAnimationFrame(sRenderThread);
                    _renderList[id].lastTime = tick;
                }
            }
            return sRenderThread;
        }
        render.setRender = function setRender(renderThread, shift) {
            var renderNow = _renderCount, renderThread;
            shift = shift || 0;
            _renderCount++;
            _renderList[renderNow] = {
                frameId: 0,
                playing: true,
                thread: renderThread,
                lastTime: 0,
                shift: shift,
                start: -1
            };
            renderThread = _renderThreadFactory(renderNow, renderThread);
            requestAnimationFrame(renderThread);
            return renderNow;
        };
        render.clearRender = function clearRender(id) {
            if (_renderList[id] !== undefined) {
                if...