JSFiddle - React, Tailwind, and code Playground

by mathheadinclouds

JavaScript

var scriptElt = document.createElement('script');
scriptElt.type = 'text/javascript';
scriptElt.src = 'https://s3.amazonaws.com/s3.mathisonian.com/javascripts/requirify-browser.js';
scriptElt.onload = function(){
	require('esprima', 'esprima')
  var afterEscodegenLoaded = function afterEscodegenLoaded(){
  	function plus(x,y){
    	// let's parse and reverse-parse this function here
      // note how this comment here will be removed
      return x+y;
    }
    document.body.textContent = 'everything loaded';
    var abstract_syntax_tree = esprima.parse(plus.toString());
    var regenerated = escodegen.generate(abstract_syntax_tree);
    var preElt = document.createElement('pre')
  	preElt.textContent = regenerated;
    document.body.appendChild(preElt);
  }
  var checkEscodegenLoaded = function checkEscodegenLoaded(){
  	var T = document.body.textContent;
  	var type = typeof escodegen;
    if (type==='object'){
    	afterEscodegenLoaded();
    } else {
    	document.body.textContent = T + '*';
    	window.setTimeout(checkEscodegenLoaded, 4000);
    }
  }
  var afterEsprimaLoaded = function afterEsprimaLoaded(){
  	document.body.textContent = 'loaded esprima - standby while escodegen is loaded';
  	require('escodegen', 'escodegen');
    checkEscodegenLoaded();
  }
  var checkEsprimaLoaded = function checkEsprimaLoaded(){
  	var type = typeof esprima;
    if (type==='object'){
    	afterEsprimaLoaded();
    } else {
    	window.setTimeout(checkEsprimaLoaded, 4000);
    }
  }
  document.body.textContent = 'standy, loading esprima...'
  checkEsprimaLoaded();
}
document.head.appendChild(scriptElt);