# See profile_used.py # # profile file, js file import sys, json used = json.loads(open(sys.argv[1]).read()) show = True in_table = False for orig in open(sys.argv[2]).readlines(): line = orig.strip() if orig.startswith('function _') and line.endswith(('){', ') {')): name = line.split(' ')[1].split('(')[0] if name.startswith('_') and not used.get(name): #print >> sys.stderr, 'remove', name show = False if line.startswith('var FUNCTION_TABLE'): in_table = True if in_table: start = 0 if 'var ' in line: start = line.index('[')+1 end = len(line) if ']' in line: end = line.index(']') contents = line[start:end] fixed = map(lambda name: '"' + name + '"' if not used.get(name) else name, contents.split(',')) print (line[:start] + ','.join(fixed) + line[end:]).replace('""', '') else: if show: print orig, if orig.startswith('}'): show = True if in_table and line.endswith(';'): in_table = False