@@ -2479,27 +2479,24 @@ def modularize():
2479
2479
'generated_js' : generated_js ,
2480
2480
}
2481
2481
2482
- if settings .MINIMAL_RUNTIME and not settings .PTHREADS and not settings .WASM_WORKERS :
2483
- # Single threaded MINIMAL_RUNTIME programs do not need access to
2484
- # document.currentScript, so a simple export declaration is enough.
2482
+ # In MODULARIZE mode this JS may be executed later, after
2483
+ # document.currentScript is gone, so we need to capture it on load using a
2484
+ # closure. In EXPORT_ES6 mode we can just use 'import.meta.url'.
2485
+ capture_currentScript = settings .ENVIRONMENT_MAY_BE_WEB and not settings .EXPORT_ES6
2486
+ # Single threaded MINIMAL_RUNTIME programs do not need access to
2487
+ # document.currentScript, so a simple export declaration is enough.
2488
+ if settings .MINIMAL_RUNTIME and not settings .PTHREADS :
2489
+ capture_currentScript = False
2490
+
2491
+ if not capture_currentScript :
2485
2492
src = f'var { settings .EXPORT_NAME } = { wrapper_function } ;'
2486
2493
else :
2487
- script_url_web = ''
2488
- # When MODULARIZE this JS may be executed later,
2489
- # after document.currentScript is gone, so we save it.
2490
- # In EXPORT_ES6 mode we can just use 'import.meta.url'.
2491
- if settings .ENVIRONMENT_MAY_BE_WEB and not settings .EXPORT_ES6 :
2492
- script_url_web = "var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;"
2493
- src = '''\
2494
- var %(EXPORT_NAME)s = (() => {
2495
- %(script_url_web)s
2496
- return (%(wrapper_function)s);
2497
- })();
2498
- ''' % {
2499
- 'EXPORT_NAME' : settings .EXPORT_NAME ,
2500
- 'script_url_web' : script_url_web ,
2501
- 'wrapper_function' : wrapper_function ,
2502
- }
2494
+ src = f'''\
2495
+ var { settings .EXPORT_NAME } = (() => {{
2496
+ var _scriptName = typeof document != 'undefined' ? document.currentScript?.src : undefined;
2497
+ return ({ wrapper_function } );
2498
+ }})();
2499
+ '''
2503
2500
2504
2501
if settings .SOURCE_PHASE_IMPORTS :
2505
2502
src = f"import source wasmModule from './{ settings .WASM_BINARY_FILE } ';\n \n " + src
0 commit comments