diff options
-rwxr-xr-x | emscripten.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/emscripten.py b/emscripten.py index df7895a1..184559e6 100755 --- a/emscripten.py +++ b/emscripten.py @@ -266,6 +266,9 @@ def emscript(infile, settings, outfile, libraries=[]): def blockaddrsize(js): return re.sub(r'{{{ BA_([\w\d_$]+)\|([\w\d_$]+) }}}', lambda m: str(blockaddrs[m.groups(0)[0]][m.groups(0)[1]]), js) + if settings.get('ASM_JS'): + outfile.write('(function() {\n'); # prevent new Function from seeing the global scope + #if DEBUG: outfile.write('// pre\n') outfile.write(blockaddrsize(indexize(pre))) pre = None @@ -343,6 +346,9 @@ var asm = asmPre(%s, buffer); // pass through Function to prevent seeing outside outfile.write(indexize(post)) if DEBUG: print >> sys.stderr, ' emscript: phase 3 took %s seconds' % (time.time() - t) + if settings.get('ASM_JS'): + outfile.write('})()\n'); + outfile.close() |