@@ -1782,7 +1782,7 @@ def emscript_wasm_backend(infile, settings, outfile, libraries=None, compiler_en
1782
1782
receiving = create_receiving_wasm (exported_implemented_functions , settings )
1783
1783
1784
1784
# finalize
1785
- module = create_module_wasm (sending , receiving , invoke_funcs , settings )
1785
+ module = create_module_wasm (sending , receiving , invoke_funcs , exported_implemented_functions , settings )
1786
1786
1787
1787
write_output_file (outfile , post , module )
1788
1788
module = None
@@ -1948,7 +1948,7 @@ def create_receiving_wasm(exported_implemented_functions, settings):
1948
1948
return receiving
1949
1949
1950
1950
1951
- def create_module_wasm (sending , receiving , invoke_funcs , settings ):
1951
+ def create_module_wasm (sending , receiving , invoke_funcs , exported_implemented_functions , settings ):
1952
1952
access_quote = access_quoter (settings )
1953
1953
invoke_wrappers = create_invoke_wrappers (invoke_funcs )
1954
1954
@@ -1983,10 +1983,11 @@ def create_module_wasm(sending, receiving, invoke_funcs, settings):
1983
1983
var establishStackSpace = Module['establishStackSpace'];
1984
1984
''' % shared .Settings .GLOBAL_BASE )
1985
1985
1986
- module .append ('''
1987
- var setTempRet0 = Module['setTempRet0'];
1988
- var getTempRet0 = Module['getTempRet0'];
1989
- ''' )
1986
+ # some runtime functionality may not have been generated in
1987
+ # the wasm; provide a JS shim for it
1988
+ for name in ['setTempRet0' , 'getTempRet0' , 'stackSave' , 'stackRestore' , 'stackAlloc' ]:
1989
+ if name not in exported_implemented_functions :
1990
+ module .append ('var %s;\n ' % name )
1990
1991
1991
1992
module .append (invoke_wrappers )
1992
1993
return module
0 commit comments