JSFiddle - React, Tailwind, and code Playground

by Josh Pullen

JavaScript

const code = `
	(({ a, b }) => a + b)
`;

const realCode = `
	let func;
  
  onmessage = function (e) {
  	postMessage(func(...e.data));
  }
  
  func = ${code};
`;

const blob = new Blob([realCode], { type: "text/javascript" });
const url = URL.createObjectURL(blob);

const worker = new Worker(url);

function execute(...args) {
	return new Promise((resolve) => {
  	worker.onmessage = message => resolve(message.data);
  	worker.postMessage(args);
  });
}

(async () => {
	console.log(await execute({ a: 2, b: 3 }));
})();