JSFiddle - React, Tailwind, and code Playground

by redeyes2015

HTML

<div id=msg></div>
<hr />
<div id=results>
</div>

CSS

#results {
    display: table;
}

#results > div {
    display: table-row;
}

#results > div > div {
    display: table-cell;
    padding-right: 1em;
    padding-left: 1em;
    min-width: 5em;
}

JavaScript

function validateEmail(email) {
    if(email.indexOf('@') > 64) return false;
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
} 
function email_2(email){
    var parts = email.split('@');
    if(parts.length != 2 || parts[0].length > 64){
        return false;
    }
    
    var local = parts[0],
        domain = parts[1];
    if(local.charAt(0) == '.' || local.charAt(local.length - 1) == '.' ||
       local.indexOf("..") >= 0) {
        return false;
       }
    return (/^[-!#$%&'*+\/=?^_`{|}~.A-Za-z0-9]+$/.test(local) &&
        /^[\-A-Za-z0-9.]+\.[A-Za-z]{2,6}$/.test(domain));
}
function slow_regexp(email){
    if(email.indexOf('@') > 64) return false;
    return !!(/^((?:(?:(?:\w[\.\-\+]?)*)\w)+)\@((?:(?:(?:\w[\.\-\+]?){0,62})\w)+)\.(\w{2,6})$/.
        exec(email));
}
function my_regexp(email){
    if(email.indexOf('@') > 64) return false;
    return (/^(?:\w[\w\.\-\+]*\w)\@(?:\w[\w\.\-\+]*)\.(?:\w{2,6})$/.
        test(email));
}
function intented_slow(){
    var s, i;
    for(i=0; i<99999999; ++i)
        s += i;
    return true;
}
function run_test(name, test_func, str){
    var terminating = false,
        count = 0,
        promise = $.Deferred();
    
    setTimeout(function(){
        $("#results").append(
                "<div><div>"+name+"</div><div>"+count+"</div></div>");
        terminating = true;
        promise.resolve();
        return;
    }, 10000);
    
    var test = function test(){
        if(terminating){
            return;
        }
        var start_ms = new Date().getTime();
        while(true){
            count += 1;
            test_func(str);
            if((new Date().getTime() - start_ms)> 50)
                break;
        }
        setTimeout(test, 0);
    };
    setTimeout(test, 0);
    return promise;
}

var verify = function(tests, str){
    var first_res =...