aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xemscripten.py6
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()