async/await messagebox

HTML

<div id="app"></div>

CSS

body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
  text-align: center;
}

JavaScript

function makeScript(owner, text, argsSig) {

    let _scriptFunc_;
    let own = owner;
		try {
        const promiseCode = `let __res = null;let __rej = null;let __promise = new Promise((resolve, reject) => {__res = resolve;__rej = reject;});try {\n`;
        const ending = `;\n;__res();} catch (err) { __rej(err);}; return __promise;`;
        const scriptSource = "_scriptFunc_ = async function(" + argsSig + ") {\"use strict\";\n" + promiseCode + text + ending + "\n}";
        console.log(scriptSource);
        eval(scriptSource);
    }
    catch (err) {
        console.log(err);
        return null;
    }

    const ret = _scriptFunc_.bind(this);
    return ret;
}

async function messagebox(_text) {
		let resolveFunc = null;
    let rejectFunc = null;
    let promise = new Promise((resolve,reject) => {
        resolveFunc = resolve;
        rejectFunc = reject;
    });
    let win = document.createElement("div");
    let $win = $(win);
    $("#app").append($win);
    win.innerHTML = `
    	<div id="messageboxtext"></div>
    	<button id="accept" style="width:200px;height:50px;">OK</button>
    `;
    const acceptButton = $("#accept", $win);
    const $text = $("#messageboxtext", $win);
    $text.text(_text);
    $(acceptButton).click(() => {
    		resolveFunc("ok");
        $win.remove();
    });
    $win.css({'position':'relative','width':'auto', 'height':'auto', 'background-color':'red'});
    return promise;
}

function Messagebox() {
		return {
    	ShowInput : async function(_text) {
        return await messagebox(_text);
      }
    };
}

function ScriptBuilder(_this, owner, text, argsSig) {
  try {
    return makeScript.call(_this, owner, text, argsSig);
  } catch (_err2) {
    console.log(_err2);
  }
}

window.Messagebox = Messagebox();
let scriptThis = {Message:""};
let _script = ScriptBuilder(scriptThis, "scriptName", `
	this.Message += await Messagebox.ShowInput(question + ' 1 ');
  console.log(this.Message);
  this.Message += await...