aboutsummaryrefslogtreecommitdiff
path: root/tools/merge_asm.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-08-01 20:32:10 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-08-01 20:32:10 -0700
commit543131f3dd830d567f672c7185cad131242ee8fa (patch)
treefb9ecc6a47ea3e9d910601ead572da087d9b6a66 /tools/merge_asm.py
parentad11d72f5066e7a2f509e6cad411612c655a90e6 (diff)
add tools to split and merge asm modules from the surrounding code
Diffstat (limited to 'tools/merge_asm.py')
-rwxr-xr-xtools/merge_asm.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tools/merge_asm.py b/tools/merge_asm.py
new file mode 100755
index 00000000..fe143a89
--- /dev/null
+++ b/tools/merge_asm.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python2
+
+'''
+Splits a compiler outputted program into the asm module and the surrounding shell. This
+can be useful if you want to process the shell in some manner (e.g. minifiy it) in ways
+that would be harmful to asm.js code.
+'''
+
+import sys
+import shared
+
+try:
+ me, in_shell, in_asm, outfile = sys.argv[:4]
+except:
+ print >> sys.stderr, 'usage: emlink.py [input file] [shell output file] [asm output file]'
+ sys.exit(1)
+
+print 'Shell input:', in_shell
+print 'Asm input:', in_asm
+print 'Input file:', outfile
+
+shared.try_delete(outfile)
+
+pre, post = open(in_shell).read().split('// ASM_CODE\n')
+open(outfile, 'w').write(pre + '\n' + open(in_asm).read() + '\n' + post)
+