JSFiddle - React, Tailwind, and code Playground
JavaScript
var context = {
dtprop: new Date(),
numprop: 12.34,
strprop: "foobar",
nullprop: null,
undefprop: undefined,
boolprop: true,
arrprop: [1234, "5678", function () { return 5 + 4; }],
regprop: /^asdf$/,
objprop: {
dtprop: new Date(),
numprop: 43.21,
boolprop: false,
strprop: "barfoo"
},
fnprop: function (param) {
console.log(" - uh oh:", param);
return "ALL DONE";
}
}
strFn = '(function() {' +
' console.log("evaluated code:");\n' +
' console.log(" dtprop is Date = ", dtprop instanceof Date, dtprop);\n' +
' console.log(" typeof numprop = ", typeof numprop, numprop);\n' +
' console.log(" typeof strprop = ", typeof strprop, strprop);\n' +
' console.log(" nullprop is null = ", nullprop === null);\n' +
' console.log(" typeof undefprop = ", typeof undefprop, undefprop);\n' +
' console.log(" typeof boolprop = ", typeof boolprop, boolprop);\n' +
' console.log(" arrprop is Array = ", arrprop instanceof Array, arrprop.length);\n' +
' console.log(" regprop is RegExp = ", regprop instanceof RegExp, "asdf".match(regprop));\n' +
' console.log(" objprop is Object = ", objprop instanceof Object, JSON.stringify(objprop));\n' +
' console.log(" typeof fnprop = ", typeof fnprop);\n' +
' return fnprop("I passed a param... ouch");' +
'})()';
var engine = {
toSourceString: function(obj, recursion) {
var strout = "";
recursion = recursion || 0;
for(var prop in obj) {
if (obj.hasOwnProperty(prop)) {
strout += recursion ? " " + prop + ": " : "var " + prop + " = ";
switch (typeof obj[prop]) {
case "string":
case "number":
case "boolean":
case "undefined":
strout += JSON.stringify(obj[prop]);
break;
...