JSFiddle - React, Tailwind, and code Playground

HTML

<script src="http://cdn.opalrb.org/opal/current/opal.min.js"></script>

JavaScript

function runProfile() {
    var start = Date.now();
    /* Generated by Opal 0.6.2 */
    (function($opal) {
      var $a, $b, TMP_1, self = $opal.top, $scope = $opal, nil = $opal.nil, $breaker = $opal.breaker, $slice = $opal.slice, a = nil;
    
      $opal.add_stubs(['$times', '$+', '$puts']);
      a = 0;
      ($a = ($b = (10000000)).$times, $a._p = (TMP_1 = function(){var self = TMP_1._s || this;
    
      return a = a['$+'](1)}, TMP_1._s = self, TMP_1), $a).call($b);
      window.console.log(a);
    })(Opal);
    
    var elapsed = Date.now() - start;
    window.console.log("opal time: " + elapsed);
    
    start = Date.now();
    var a = 0;
    for (var i = 0; i < 10000000; i++) {
        a = a + 1;
    }
    window.console.log(a);
    elapsed = Date.now() - start;
    window.console.log("js time: " + elapsed);

    start = Date.now();
    (function() {
      var a, i, line;
      for (a = 0, i = 0; i < 10000000; ++i)
        ++a;
      line = "" + a;
      window.console.log(line);
    })();
    elapsed = Date.now() - start;
    window.console.log("dart time: " + elapsed);
}

runProfile();
runProfile();