diff --git a/lib/core/modules/coderunner/codeRunner.js b/lib/core/modules/coderunner/codeRunner.js index c34af412..fc308bea 100644 --- a/lib/core/modules/coderunner/codeRunner.js +++ b/lib/core/modules/coderunner/codeRunner.js @@ -41,7 +41,22 @@ class CodeRunner { if (!cb) { cb = function() {}; } + const awaitIdx = code.indexOf('await'); + if (awaitIdx > -1) { + if (awaitIdx < 2) { + let end = code.length; + if (code[end - 1] === ';') { + end--; // Remove the `;` because we add function calls + } + code = code.substring(5, end); // remove await keyword + } else { + code = `(async function() {${code}})();`; + } + } let result = RunCode.doEval(code); + if (result instanceof Promise) { + return result.then((value) => cb(null, value)).catch(cb); + } if (forConsoleOnly && self.ipc.isServer()) { self.commands.push({code}); self.ipc.broadcast("runcode:newCommand", {code});