Skip to content

Commit 006059d

Browse files
committed
simple asm mode that just exports main
1 parent b787395 commit 006059d

1 file changed

Lines changed: 11 additions & 4 deletions

File tree

emscripten.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,7 @@ def blockaddrsize(js):
292292
last_forwarded_json = json.loads(last_forwarded_data)
293293

294294
if settings.get('ASM_JS'):
295+
simple = os.environ.get('EMCC_SIMPLE_ASM')
295296
class Counter:
296297
i = 0
297298
def make_table(sig, raw):
@@ -337,9 +338,12 @@ def make_table(sig, raw):
337338
# calculate exports
338339
exported_implemented_functions = list(exported_implemented_functions)
339340
exports = []
340-
for export in exported_implemented_functions + asm_runtime_funcs + function_tables:
341-
exports.append("'%s': %s" % (export, export))
342-
exports = '{ ' + ', '.join(exports) + ' }'
341+
if not simple:
342+
for export in exported_implemented_functions + asm_runtime_funcs + function_tables:
343+
exports.append("'%s': %s" % (export, export))
344+
exports = '{ ' + ', '.join(exports) + ' }'
345+
else:
346+
exports = '_main'
343347
# calculate globals
344348
try:
345349
del forwarded_json['Variables']['globals']['_llvm_global_ctors'] # not a true variable
@@ -353,7 +357,10 @@ def make_table(sig, raw):
353357
# sent data
354358
sending = '{ ' + ', '.join([s + ': ' + s for s in fundamentals + basic_funcs + global_funcs + basic_vars + global_vars]) + ' }'
355359
# received
356-
receiving = ';\n'.join(['var ' + s + ' = Module["' + s + '"] = asm.' + s for s in exported_implemented_functions + function_tables])
360+
if not simple:
361+
receiving = ';\n'.join(['var ' + s + ' = Module["' + s + '"] = asm.' + s for s in exported_implemented_functions + function_tables])
362+
else:
363+
receiving = 'var _main = Module["_main"] = asm;'
357364
# finalize
358365
funcs_js = '''
359366
%s

0 commit comments

Comments
 (0)