export JS_GetModuleNamespace (github issue #34)

This commit is contained in:
Fabrice Bellard 2024-01-27 13:27:32 +01:00
parent cd666a851f
commit c6cc6a9a5e
2 changed files with 6 additions and 7 deletions

View File

@ -27792,13 +27792,11 @@ static int exported_names_cmp(const void *p1, const void *p2, void *opaque)
return ret; return ret;
} }
static JSValue js_get_module_ns(JSContext *ctx, JSModuleDef *m);
static JSValue js_module_ns_autoinit(JSContext *ctx, JSObject *p, JSAtom atom, static JSValue js_module_ns_autoinit(JSContext *ctx, JSObject *p, JSAtom atom,
void *opaque) void *opaque)
{ {
JSModuleDef *m = opaque; JSModuleDef *m = opaque;
return js_get_module_ns(ctx, m); return JS_GetModuleNamespace(ctx, m);
} }
static JSValue js_build_module_ns(JSContext *ctx, JSModuleDef *m) static JSValue js_build_module_ns(JSContext *ctx, JSModuleDef *m)
@ -27904,7 +27902,7 @@ static JSValue js_build_module_ns(JSContext *ctx, JSModuleDef *m)
return JS_EXCEPTION; return JS_EXCEPTION;
} }
static JSValue js_get_module_ns(JSContext *ctx, JSModuleDef *m) JSValue JS_GetModuleNamespace(JSContext *ctx, JSModuleDef *m)
{ {
if (JS_IsUndefined(m->module_ns)) { if (JS_IsUndefined(m->module_ns)) {
JSValue val; JSValue val;
@ -28165,7 +28163,7 @@ static int js_inner_module_linking(JSContext *ctx, JSModuleDef *m,
if (mi->import_name == JS_ATOM__star_) { if (mi->import_name == JS_ATOM__star_) {
JSValue val; JSValue val;
/* name space import */ /* name space import */
val = js_get_module_ns(ctx, m1); val = JS_GetModuleNamespace(ctx, m1);
if (JS_IsException(val)) if (JS_IsException(val))
goto fail; goto fail;
set_value(ctx, &var_refs[mi->var_idx]->value, val); set_value(ctx, &var_refs[mi->var_idx]->value, val);
@ -28189,7 +28187,7 @@ static int js_inner_module_linking(JSContext *ctx, JSModuleDef *m,
JSModuleDef *m2; JSModuleDef *m2;
/* name space import from */ /* name space import from */
m2 = res_m->req_module_entries[res_me->u.req_module_idx].module; m2 = res_m->req_module_entries[res_me->u.req_module_idx].module;
val = js_get_module_ns(ctx, m2); val = JS_GetModuleNamespace(ctx, m2);
if (JS_IsException(val)) if (JS_IsException(val))
goto fail; goto fail;
var_ref = js_create_module_var(ctx, TRUE); var_ref = js_create_module_var(ctx, TRUE);
@ -28397,7 +28395,7 @@ static JSValue js_load_module_fulfilled(JSContext *ctx, JSValueConst this_val,
JSValue ret, ns; JSValue ret, ns;
/* return the module namespace */ /* return the module namespace */
ns = js_get_module_ns(ctx, m); ns = JS_GetModuleNamespace(ctx, m);
if (JS_IsException(ns)) { if (JS_IsException(ns)) {
JSValue err = JS_GetException(ctx); JSValue err = JS_GetException(ctx);
js_load_module_rejected(ctx, JS_UNDEFINED, 1, (JSValueConst *)&err, 0, func_data); js_load_module_rejected(ctx, JS_UNDEFINED, 1, (JSValueConst *)&err, 0, func_data);

View File

@ -876,6 +876,7 @@ void JS_SetModuleLoaderFunc(JSRuntime *rt,
/* return the import.meta object of a module */ /* return the import.meta object of a module */
JSValue JS_GetImportMeta(JSContext *ctx, JSModuleDef *m); JSValue JS_GetImportMeta(JSContext *ctx, JSModuleDef *m);
JSAtom JS_GetModuleName(JSContext *ctx, JSModuleDef *m); JSAtom JS_GetModuleName(JSContext *ctx, JSModuleDef *m);
JSValue JS_GetModuleNamespace(JSContext *ctx, JSModuleDef *m);
/* JS Job support */ /* JS Job support */