JSFiddle - React, Tailwind, and code Playground

HTML

<textarea id="text"></textarea>
<textarea id="simulator"></textarea>
<br/>
<div id="simulate" >Simulate</div>

JavaScript

var keyslog = [];
var baseTime = 0;

$('#text').bind('keyup keydown keypress', function(e){
    if (baseTime <= 0) baseTime = e.timeStamp;
    keyslog.push({delay:e.timeStamp-baseTime, text:$('#text').val()});
});

$('#simulate').click(function () {
    $simulator = $('#simulator');
    
    while(keyslog.length > 0) {
        var e = keyslog.shift();
        
        window.setTimeout(updateText, e.delay, $simulator, e.text);
    }
});

function updateText($s, t) {
    $s.val(t);
}