@@ -629,15 +629,20 @@ def escape_for_makefile(fpath):
629629def  generate_js (data_target , data_files , metadata ):
630630  # emcc will add this to the output itself, so it is only needed for 
631631  # standalone calls 
632-   ret  =  '' 
633-   if  not  options .from_emcc :
632+   if  options .from_emcc :
633+     ret  =  '' 
634+   else :
634635    if  options .export_es6 :
635-       if  options .support_node :
636-         ret  +=  'import { createRequire } from \' module\' ;\n \n ' 
637-       ret  +=  '''export default function loadDataFile(Module) { 
638-   return new Promise((loadDataResolve, loadDataReject) => {''' 
636+       ret  =  'export default async function loadDataFile(Module) {\n ' 
637+       if  options .support_node  and  options .export_es6 :
638+         ret  +=  '''if (isNode) { 
639+     const { createRequire } = await import('module'); 
640+     /** @suppress{duplicate} */ 
641+     var require = createRequire(import.meta.url); 
642+   }\n ''' 
643+       ret  +=  'return new Promise((loadDataResolve, loadDataReject) => {\n ' 
639644    else :
640-       ret  + =''' 
645+       ret  =  ''' 
641646  var Module = typeof %(EXPORT_NAME)s != 'undefined' ? %(EXPORT_NAME)s : {};\n '''  %  {"EXPORT_NAME" : options .export_name }
642647
643648  ret  +=  ''' 
@@ -663,11 +668,6 @@ def generate_js(data_target, data_files, metadata):
663668        if (!check) throw msg + new Error().stack; 
664669      }\n ''' 
665670
666-   if  options .support_node  and  options .export_es6 :
667-     ret  +=  '''if (isNode) { 
668-       var require = createRequire(import.meta.url); 
669-     }''' 
670- 
671671  # Set up folders 
672672  partial_dirs  =  []
673673  for  file_  in  data_files :
0 commit comments