diff options
Diffstat (limited to 'tools/profile_used.py')
-rw-r--r-- | tools/profile_used.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tools/profile_used.py b/tools/profile_used.py new file mode 100644 index 00000000..b954f7d1 --- /dev/null +++ b/tools/profile_used.py @@ -0,0 +1,28 @@ +# Run, then execute +''' +dump(JSON.stringify(usedFunctions)) +''' +# then strip with profile_strip.py + +import sys + +print 'var usedFunctions = {};' +#print "function getFuncName(f) { return f.toString().split(' ')[1].split('(')[0] }" +print "function getFuncName(f) { return f.name }" + +last = [] + +for line in open(sys.argv[1]).readlines(): + line = line.strip() + print line + if line.startswith('function _') and line.endswith(('){', ') {')): + name = line.split(' ')[1].split('(')[0] + print 'usedFunctions["%s"] = 1;' % name + if line.startswith('var FUNCTION_TABLE'): + name = line.split(' ')[1].split('=')[0] + last += ['for (var i = 0; i < %s.length; i++) if (typeof %s[i] === "function") usedFunctions[getFuncName(%s[i])] = 1;' % (name, name, name)] + if len(last) > 0 and line.endswith(';'): + for l in last: + print l + last = [] + |