diff options
author | Alon Zakai <alonzakai@gmail.com> | 2013-01-22 15:16:20 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2013-01-22 15:16:20 -0800 |
commit | d3a1aa4fce562114f8ffeb5df7e5a0427a9aad04 (patch) | |
tree | 3c4576c623af59bc5bbe956ef233fc3ebd4b82bd /emscripten.py | |
parent | 7aa630b73b7b895acad096fd59fd1145630a0806 (diff) |
fix function table type defs
Diffstat (limited to 'emscripten.py')
-rwxr-xr-x | emscripten.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/emscripten.py b/emscripten.py index 5b587a4b..137d95cb 100755 --- a/emscripten.py +++ b/emscripten.py @@ -315,8 +315,8 @@ def emscript(infile, settings, outfile, libraries=[]): Counter.i += 1 bad = 'b' + str(i) params = ','.join(['p%d' % p for p in range(len(sig)-1)]) - coercions = ';'.join(['p%d = %sp%d%s' % (p, '+' if sig[p+1] == 'f' else '', p, '' if sig[p+1] == 'f' else '|0') for p in range(len(sig)-1)]) + ';' - ret = '' if sig[0] == 'v' else ('return %s0' % ('+' if sig[0] == 'f' else '')) + coercions = ';'.join(['p%d = %sp%d%s' % (p, '+' if sig[p+1] != 'i' else '', p, '' if sig[p+1] != 'i' else '|0') for p in range(len(sig)-1)]) + ';' + ret = '' if sig[0] == 'v' else ('return %s0' % ('+' if sig[0] != 'i' else '')) return ('function %s(%s) { %s abort(%d); %s };' % (bad, params, coercions, i, ret), raw.replace('[0,', '[' + bad + ',').replace(',0,', ',' + bad + ',').replace(',0,', ',' + bad + ',').replace(',0]', ',' + bad + ']').replace(',0]', ',' + bad + ']')) infos = [make_table(sig, raw) for sig, raw in last_forwarded_json['Functions']['tables'].iteritems()] function_tables_defs = '\n'.join([info[0] for info in infos] + [info[1] for info in infos]) @@ -343,7 +343,7 @@ var i64Math_modulo = function(a, b, c, d, e) { i64Math.modulo(a, b, c, d, e) }; # function tables def asm_coerce(value, sig): if sig == 'v': return value - return ('+' if sig == 'f' else '') + value + ('|0' if sig == 'i' else '') + return ('+' if sig != 'i' else '') + value + ('|0' if sig == 'i' else '') function_tables = ['dynCall_' + table for table in last_forwarded_json['Functions']['tables']] function_tables_impls = [] |