aboutsummaryrefslogtreecommitdiff
path: root/emscripten.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-28 16:36:40 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-12-07 14:23:19 -0800
commit709d9bf788b78992ab6aa7676e6a9f59ac696efa (patch)
tree4af48c9337a0a7161a86d485d3b43f4599423282 /emscripten.py
parent0ec22e206f7b552897dd2c303c84c70b742d0208 (diff)
export asm.js exports to outside scope
Diffstat (limited to 'emscripten.py')
-rwxr-xr-xemscripten.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/emscripten.py b/emscripten.py
index a93095a9..26d4a24e 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -254,6 +254,8 @@ def emscript(infile, settings, outfile, libraries=[]):
# sent data
basics = ['buffer', 'Int8Array', 'Int16Array', 'Int32Array', 'Uint8Array', 'Uint16Array', 'Uint32Array', 'Float32Array', 'Float64Array']
sending = '{ ' + ', '.join([s + ': ' + s for s in basics + global_vars + global_funcs]) + ' }'
+ # received
+ receiving = ';\n'.join(['var ' + s + ' = Module["' + s + '"] = asm.' + s for s in exported_implemented_functions])
# finalize
funcs_js = '''
var asm = (function(env, buffer) {
@@ -270,8 +272,8 @@ var asm = (function(env, buffer) {
return %s;
})(%s, buffer);
-for (var _export in asm) Module[_export] = asm[_export];
-''' % (exports, sending)
+%s;
+''' % (exports, sending, receiving)
outputs = None
if DEBUG: print >> sys.stderr, ' emscript: phase 2b took %s seconds' % (time.time() - t)