From 4471e8c9608a0c94d4ad256e3c1d218ee9a2db5c Mon Sep 17 00:00:00 2001 From: The Ghost of FOSS' Future <163201376+sneedgroup-holder@users.noreply.github.com> Date: Thu, 9 Jan 2025 00:55:15 +0000 Subject: [PATCH] Update qjs.c --- qjs.c | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/qjs.c b/qjs.c index 4886f1f..77d651e 100644 --- a/qjs.c +++ b/qjs.c @@ -152,6 +152,35 @@ static int eval_file(JSContext *ctx, const char *filename, int module) eval_flags = JS_EVAL_TYPE_MODULE; else eval_flags = JS_EVAL_TYPE_GLOBAL; + + //POLYFILLS FOR QJS FILES BEGIN + const char *pf = "globalThis.global = globalThis;\n" + "global.console.error = console.log\n" + "global.console.warn = console.log\n" + "globalThis.breakFunction = () => { throw new Error('Function Break'); };\n" + "\n" + "if (typeof os !== 'undefined') {\n" + " globalThis.sleep = os.sleep;\n" + " async function setTimeout2(func, ms) {globalThis.clearTimeout = false; await sleep(ms); if (!clearTimeout) { func(); } }\n" + " globalThis.setTimeout = setTimeout2\n" + "} else {\n" + " console.error('os is not defined.');\n" + "}\n" + "\n" + "if (typeof std !== 'undefined') {\n" + " globalThis.urlGet = std.urlGet;\n" + " globalThis.loadFile = std.loadFile;\n" + " globalThis.doneRequire = std.loadFile;\n" + " globalThis.printf = console.log;\n" + " globalThis.evalFile = std.loadScript;\n" + " globalThis.require = (moduleSpecifier) => import(moduleSpecifier).then(mod => mod.default || mod);\n" + " globalThis.stdRequire = globalThis.require;\n" + " globalThis.safeGlobals = {} \n" + " globalThis.getURL = std.urlGet;\n" + "} else {\n" + " console.error('std is not defined.');\n" + "}\n"; + eval_buf(ctx, pf, strlen(pf), "", JS_EVAL_TYPE_MODULE); ret = eval_buf(ctx, buf, buf_len, filename, eval_flags); @@ -672,7 +701,7 @@ start: "} else {\n" " console.error('std is not defined.');\n" "}\n"; - eval_buf(ctx, pf, strlen(pf), "", JS_EVAL_TYPE_MODULE); + //eval_buf(ctx, pf, strlen(pf), "", JS_EVAL_TYPE_MODULE); if (standalone) { JSValue ns = load_standalone_module(ctx);