From 24692fbb5fa4976ecd665a0a44e089f3f00fc84a Mon Sep 17 00:00:00 2001 From: Sneed Group Holder Date: Thu, 24 Oct 2024 16:21:29 -0500 Subject: [PATCH] add validation checks, move polyfills so os and std functions work --- qjs.c | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/qjs.c b/qjs.c index 1c38cd6..0d2958a 100644 --- a/qjs.c +++ b/qjs.c @@ -496,23 +496,6 @@ int main(int argc, char **argv) eval_buf(ctx, str, strlen(str), "", JS_EVAL_TYPE_MODULE); } - //POLYFILLS BEGIN - const char *pf = "async function require(x) {\n" - " const y = await import(x);" // use dynamic import. - " return y;\n" - "}\n" - "globalThis.require = require;\n" - "globalThis.setTimeout = os.setTimeout;\n" - "globalThis.clearTimeout = os.clearTimeout;\n" - "globalThis.sleep = os.sleep;\n" - "globalThis.urlGet = std.urlGet;\n" - "globalThis.loadFile = std.loadFile;\n" - "globalThis.printf = std.printf;\n" - "globalThis.evalFile = std.loadScript;\n" - "globalThis.getURL = std.urlGet;\n" - "globalThis.global = globalThis;\n"; - eval_buf(ctx, pf, strlen(pf), "", JS_EVAL_TYPE_MODULE); - for(i = 0; i < include_count; i++) { if (eval_file(ctx, include_list[i], module)) @@ -535,6 +518,38 @@ int main(int argc, char **argv) if (interactive) { js_std_eval_binary(ctx, qjsc_repl, qjsc_repl_size, 0); } + + //POLYFILLS BEGIN + const char *pf = "async function require(x) {\n" + " const y = await import(x);\n" + " return y;\n" + "}\n" + "globalThis.require = require;\n" + "globalThis.global = globalThis;\n" + "global.console.error = console.log\n" + "global.console.warn = console.log\n" + "\n" + "if (typeof os !== 'undefined') {\n" + " globalThis.setTimeout = os.setTimeout;\n" + " globalThis.clearTimeout = os.clearTimeout;\n" + " globalThis.sleep = os.sleep;\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.printf = std.printf;\n" + " globalThis.evalFile = std.loadScript;\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); + js_std_loop(ctx); }