diff options
Diffstat (limited to 'src/js/jsmodule.nim')
-rw-r--r-- | src/js/jsmodule.nim | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/src/js/jsmodule.nim b/src/js/jsmodule.nim deleted file mode 100644 index cdb836e6..00000000 --- a/src/js/jsmodule.nim +++ /dev/null @@ -1,27 +0,0 @@ -import monoucha/constcharp -import monoucha/javascript -import monoucha/quickjs -import monoucha/tojs - -proc setImportMeta(ctx: JSContext; funcVal: JSValue; isMain: bool) = - let m = cast[JSModuleDef](JS_VALUE_GET_PTR(funcVal)) - let moduleNameAtom = JS_GetModuleName(ctx, m) - let metaObj = JS_GetImportMeta(ctx, m) - definePropertyCWE(ctx, metaObj, "url", JS_AtomToValue(ctx, moduleNameAtom)) - definePropertyCWE(ctx, metaObj, "main", isMain) - JS_FreeValue(ctx, metaObj) - JS_FreeAtom(ctx, moduleNameAtom) - -proc finishLoadModule*(ctx: JSContext; f: string; name: cstring): JSModuleDef = - let funcVal = compileModule(ctx, f, $name) - if JS_IsException(funcVal): - return nil - setImportMeta(ctx, funcVal, false) - # "the module is already referenced, so we must free it" - # idk how this works, so for now let's just do what qjs does - result = cast[JSModuleDef](JS_VALUE_GET_PTR(funcVal)) - JS_FreeValue(ctx, funcVal) - -proc normalizeModuleName*(ctx: JSContext; base_name, name: cstringConst; - opaque: pointer): cstring {.cdecl.} = - return js_strdup(ctx, cstring(name)) |