aboutsummaryrefslogtreecommitdiff
path: root/tools/split_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/split_asm.py
parentad11d72f5066e7a2f509e6cad411612c655a90e6 (diff)
add tools to split and merge asm modules from the surrounding code
Diffstat (limited to 'tools/split_asm.py')
-rwxr-xr-xtools/split_asm.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/tools/split_asm.py b/tools/split_asm.py
new file mode 100755
index 00000000..39eaca00
--- /dev/null
+++ b/tools/split_asm.py
@@ -0,0 +1,30 @@
+#!/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
+from asm_module import AsmModule
+
+try:
+ me, infile, out_shell, out_asm = sys.argv[:4]
+except:
+ print >> sys.stderr, 'usage: emlink.py [input file] [shell output file] [asm output file]'
+ sys.exit(1)
+
+print 'Input file:', infile
+print 'Shell output:', out_shell
+print 'Asm output:', out_asm
+
+shared.try_delete(out_shell)
+shared.try_delete(out_asm)
+
+module = AsmModule(infile)
+
+open(out_shell, 'w').write(module.pre_js + '\n// ASM_CODE\n' + module.post_js)
+open(out_asm, 'w').write(module.asm_js)
+