aboutsummaryrefslogtreecommitdiff
path: root/emscripten.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-24 23:06:44 +0100
committerAlon Zakai <alonzakai@gmail.com>2012-12-07 14:23:18 -0800
commit26e9eba5aa1db69ad6fa36f6b6f27aed7532623c (patch)
treebfd1414c2dfdefca1f7afb4cea96b12fd3d217f7 /emscripten.py
parentff39897223947c89af7066f3a9421db28e796605 (diff)
generate separate type-specific function tables
Diffstat (limited to 'emscripten.py')
-rwxr-xr-xemscripten.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/emscripten.py b/emscripten.py
index a9a1824d..bb78e311 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -236,6 +236,8 @@ def emscript(infile, settings, outfile, libraries=[]):
if settings.get('ASM_JS'):
for key in curr_forwarded_json['Functions']['implementedFunctions'].iterkeys():
if key in all_exported_functions: exported_implemented_functions.add(key)
+ for key, value in curr_forwarded_json['Functions']['libraryFunctions'].iteritems():
+ forwarded_json['Functions']['libraryFunctions'][key] = value
funcs_js = ''.join([output[0] for output in outputs])
@@ -247,7 +249,7 @@ def emscript(infile, settings, outfile, libraries=[]):
exports = '{ ' + ', '.join(exports) + ' }'
# caculate globals
global_vars = forwarded_json['Variables']['globals'].keys()
- global_funcs = ['_' + x for x in forwarded_json['Functions']['libraryFunctions']]
+ global_funcs = ['_' + x for x in forwarded_json['Functions']['libraryFunctions'].keys()]
asm_globals = ''.join([' var ' + g + '=env.' + g + ';\n' for g in global_vars + global_funcs])
# sent data
basics = ['buffer', 'Int8Array', 'Int16Array', 'Int32Array', 'Uint8Array', 'Uint16Array', 'Uint32Array', 'Float32Array', 'Float64Array']
@@ -311,6 +313,7 @@ for (var _export in asm) Module[_export] = asm[_export];
open(post_file, 'w').write('\n') # no input, just processing of forwarded data
out = shared.run_js(compiler, shared.COMPILER_ENGINE, [settings_file, post_file, 'post', forwarded_file] + libraries, stdout=subprocess.PIPE, cwd=path_from_root('src'))
#if DEBUG: outfile.write('// post\n')
+
outfile.write(indexize(out))
if DEBUG: print >> sys.stderr, ' emscript: phase 3 took %s seconds' % (time.time() - t)