window.addEventListener("load",async ()=> { var info = document.createElement("div"); info.innerHTML="both
test A: (new TextEncoder()).encode(str) and
test B: new Blob([str])
will block the UI thread equally

" info.style.color="blue"; document.body.appendChild(info); var div = document.createElement("div"); var acount=0; var bcount=0; var end; var secs=10; var done=false document.body.appendChild(div); (function info(){ div.innerHTML="end in "+(end - Date.now()) +"
acount="+acount +"
bcount="+bcount; if(!done) setTimeout(info,100); })(); function wait(ms=100){ return new Promise((resolve)=>{ setTimeout(resolve,ms); }); } await (()=>{return new Promise((resolve)=>{console.log('start promise');setTimeout(resolve,100);});})(); var a = (new Array(20000000)).join("."); const enc = new TextEncoder(); var ab; console.log("start test a"); end = Date.now() + secs * 1000; while(Date.now()