@@ -796,6 +796,10 @@ def make_export_wrappers(exports, delay_assignment):
796796 if name == '__cpp_exception' :
797797 continue
798798 mangled = asmjs_mangle (name )
799+ if mangled in building .user_requested_exports or name .startswith ('dynCall_' ):
800+ lhs = f'{ mangled } = Module["{ mangled } "]'
801+ else :
802+ lhs = f'{ mangled } '
799803 # The emscripten stack functions are called very early (by writeStackCookie) before
800804 # the runtime is initialized so we can't create these wrappers that check for
801805 # runtimeInitialized.
@@ -805,27 +809,27 @@ def make_export_wrappers(exports, delay_assignment):
805809 if delay_assignment :
806810 wrappers .append ('''\
807811 /** @type {function(...*):?} */
808- var %(mangled)s = Module["%(mangled)s"] = createExportWrapper("%(name)s");
809- ''' % {'mangled' : mangled , 'name' : name })
812+ var %(lhs)s = createExportWrapper("%(name)s");
813+ ''' % {'lhs' : lhs , ' mangled' : mangled , 'name' : name })
810814 else :
811815 wrappers .append ('''\
812816 /** @type {function(...*):?} */
813- var %(mangled)s = Module["%(mangled)s"] = createExportWrapper("%(name)s", asm);
814- ''' % {'mangled' : mangled , 'name' : name })
817+ var %(lhs)s = createExportWrapper("%(name)s", asm);
818+ ''' % {'lhs' : lhs , ' mangled' : mangled , 'name' : name })
815819 elif delay_assignment :
816820 # With assertions disabled the wrapper will replace the global var and Module var on
817821 # first use.
818822 wrappers .append ('''\
819823 /** @type {function(...*):?} */
820- var %(mangled)s = Module["%(mangled)s"] = function() {
821- return (%(mangled)s = Module["%(mangled)s"] = Module["asm"]["%(name)s"]).apply(null, arguments);
824+ var %(lhs)s = function() {
825+ return (%(lhs)s = Module["asm"]["%(name)s"]).apply(null, arguments);
822826};
823- ''' % {'mangled' : mangled , 'name' : name })
827+ ''' % {'lhs' : lhs , ' mangled' : mangled , 'name' : name })
824828 else :
825829 wrappers .append ('''\
826830 /** @type {function(...*):?} */
827- var %(mangled)s = Module["%(mangled)s"] = asm["%(name)s"]
828- ''' % {'mangled' : mangled , 'name' : name })
831+ var %(lhs)s = asm["%(name)s"]
832+ ''' % {'lhs' : lhs , ' mangled' : mangled , 'name' : name })
829833 return wrappers
830834
831835
0 commit comments