aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-11-06 17:15:28 -0800
committerAlon Zakai <alonzakai@gmail.com>2012-11-06 17:15:28 -0800
commit82dbac50600631907ecc43d55b174c23c9003607 (patch)
tree1bc3b8876d525b6eebe3eaaa5d95121ffddbb265
parent8547bf5788d8ce62ae0d656bb838178ff96f295a (diff)
optimize emscript indexize using python re
-rwxr-xr-xemscripten.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/emscripten.py b/emscripten.py
index 0b0d8899..66fd3194 100755
--- a/emscripten.py
+++ b/emscripten.py
@@ -187,17 +187,14 @@ def emscript(infile, settings, outfile, libraries=[]):
# calculations on merged forwarded data
forwarded_json['Functions']['indexedFunctions'] = {}
- index_reps = []
i = 2
for indexed in indexed_functions:
- index_reps.append((indexed, i))
- forwarded_json['Functions']['indexedFunctions'][indexed] = i
+ forwarded_json['Functions']['indexedFunctions'][indexed] = i # make sure not to modify this python object later - we use it in indexize
i += 2
forwarded_json['Functions']['nextIndex'] = i
+ indexing = forwarded_json['Functions']['indexedFunctions']
def indexize(js):
- for indexed, i in index_reps:
- js = js.replace('{{{ FI_' + indexed + ' }}}', str(i)) # TODO: optimize, do them all with a regexp replace?
- return js
+ return re.sub(r'{{{ FI_([\w\d_$]+) }}}', lambda m: str(indexing[m.groups(0)[0]]), js)
# forward
forwarded_data = json.dumps(forwarded_json)
forwarded_file = temp_files.get('.2.json').name