''' Finds why a .js file is large by printing functions by size ''' import os, sys funcs = [] i = 0 inside = None for line in open(sys.argv[1]): i += 1 if line.startswith('function _'): inside = line.replace('function ', '').replace('\n', '') start = i elif inside and line.startswith('}'): funcs.append((inside, i-start)) inside = None print '\n'.join(map(lambda func: str(func[1]) + ':' + func[0], sorted(funcs, key=lambda func: -func[1])))