@@ -629,15 +629,13 @@ 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 ' 
639637    else :
640-       ret  + =''' 
638+       ret  =  ''' 
641639  var Module = typeof %(EXPORT_NAME)s != 'undefined' ? %(EXPORT_NAME)s : {};\n '''  %  {"EXPORT_NAME" : options .export_name }
642640
643641  ret  +=  ''' 
@@ -656,18 +654,23 @@ def generate_js(data_target, data_files, metadata):
656654
657655  if  options .support_node :
658656    ret  +=  "    var isNode = typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string';\n " 
657+ 
658+   if  options .support_node  and  options .export_es6 :
659+         ret  +=  '''if (isNode) { 
660+     const { createRequire } = await import('module'); 
661+     /** @suppress{duplicate} */ 
662+     var require = createRequire(import.meta.url); 
663+   }\n ''' 
664+ 
665+   if  options .export_es6 :
666+     ret  +=  'return new Promise((loadDataResolve, loadDataReject) => {\n ' 
659667  ret  +=  '    function loadPackage(metadata) {\n ' 
660668
661669  code  =  ''' 
662670      function assert(check, msg) { 
663671        if (!check) throw msg + new Error().stack; 
664672      }\n ''' 
665673
666-   if  options .support_node  and  options .export_es6 :
667-     ret  +=  '''if (isNode) { 
668-       var require = createRequire(import.meta.url); 
669-     }''' 
670- 
671674  # Set up folders 
672675  partial_dirs  =  []
673676  for  file_  in  data_files :
0 commit comments