JSFiddle - React, Tailwind, and code Playground

by 0cool

HTML

<button id="go" > hold / release  </button>
<span id="target" >0</span>

CSS

* {
 font-family : monospace;
}

JavaScript

;(( function ( field, dfn ) {
  this[field] = dfn();
} ).call(
 window,
 "Timer",
 function () {
    var undef;
    var aproto = Array.prototype;
    var _ = {
      isfn     : function ( o ) {
        return typeof o == "function";
      },
      isobj    : function ( o ) {
        return o === Object( o );
      },
      isvalid  : function ( o ) {
        return ( o != null ) && ( o === o );
      },
      gc       : function () { // ... args to remove
        // this === ( array ) target
        var togc = _.slice( arguments );
        for (
          var i = this.length;
          --i  >= 0;
          ( togc.indexOf( this[i] ) != -1 )
          && this.splice( i, 1 )
        );
        return this;
      },
      empty    : function ( arr ) {
        return ( arr.length = 0, arr );
      },
      arreach  : ( function () {
        return ( typeof aproto.forEach == "function" )
              ? function ( arr, fn ) {
                  arr.forEach( fn );
                  return arr;
                }
              : function ( arr, fn ) {
                 for (
                    var i = 0,
                    l = arr.length;
                    i < l;
                    ( i in arr )
                    && fn.call( this, arr[i], i, arr ),
                    i++
                 );
                 return arr;
                };
      } )(),
      arrsub   : function ( arr, arrnew ) {
        return ( aproto.push.apply( _.empty( arr ), arrnew ), arr );
      },
      owneach  : function ( obj, fn ) {
        for (
          var l in obj
        ) {
          _.owns( obj, l )
          && fn.call( obj, l, obj[l] );
        }
        return obj;
      },
      async    : function ( fn ) {
        return function () {
          var host   = this;
          var args   = _.slice( arguments );
          var origfn = fn;
          setTimeout(
            function () {
              return origfn.apply( host, args );
            }
          );
          return...