diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index e5058983f..875c01354 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -2045,10 +2045,7 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) { if (build_context.metrics.os == TargetOs_js) { char const *export_name = alloc_cstring(heap_allocator(), p->name); - LLVMAddTargetDependentFunctionAttr(p->value, "export", export_name); - LLVMAddTargetDependentFunctionAttr(p->value, "export-name", export_name); LLVMAddTargetDependentFunctionAttr(p->value, "wasm-export-name", export_name); - LLVMAddTargetDependentFunctionAttr(p->value, "wasm-exported", nullptr); } } if (p->is_foreign) { @@ -2056,7 +2053,11 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity) { char const *import_name = alloc_cstring(heap_allocator(), p->name); char const *module_name = "env"; if (entity->Procedure.foreign_library != nullptr) { - module_name = alloc_cstring(heap_allocator(), entity->Procedure.foreign_library->token.string); + Entity *foreign_library = entity->Procedure.foreign_library; + GB_ASSERT(foreign_library->kind == Entity_LibraryName); + if (foreign_library->LibraryName.paths.count > 0) { + module_name = alloc_cstring(heap_allocator(), foreign_library->LibraryName.paths[0]); + } } LLVMAddTargetDependentFunctionAttr(p->value, "wasm-import-name", import_name); LLVMAddTargetDependentFunctionAttr(p->value, "wasm-import-module", module_name); diff --git a/src/parser.cpp b/src/parser.cpp index 143644f70..86900c133 100644 --- a/src/parser.cpp +++ b/src/parser.cpp @@ -4736,14 +4736,15 @@ void parse_setup_file_decls(Parser *p, AstFile *f, String base_dir, Array for_array(fp_idx, fl->filepaths) { String file_str = fl->filepaths[fp_idx].string; String fullpath = file_str; - - String foreign_path = {}; - bool ok = determine_path_from_string(&p->file_decl_mutex, node, base_dir, file_str, &foreign_path); - if (!ok) { - decls[i] = ast_bad_decl(f, fl->filepaths[fp_idx], fl->filepaths[fl->filepaths.count-1]); - goto end; + if (build_context.metrics.os != TargetOs_js) { + String foreign_path = {}; + bool ok = determine_path_from_string(&p->file_decl_mutex, node, base_dir, file_str, &foreign_path); + if (!ok) { + decls[i] = ast_bad_decl(f, fl->filepaths[fp_idx], fl->filepaths[fl->filepaths.count-1]); + goto end; + } + fullpath = foreign_path; } - fullpath = foreign_path; array_add(&fl->fullpaths, fullpath); } if (fl->fullpaths.count == 0) {