prototype-1.7.0.0.js | SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING |
prototype-1.7.0.0.js | MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED |
jquery-1.7.1.js | subtractsBorderForOverflowNotVisible |
jquery.mobile-1.0.js | getClosestElementWithVirtualBinding |
prototype-1.7.0.0.js | HAS_EXTENDED_CREATE_ELEMENT_SYNTAX |
var fs = require('fs'), esprima = require('esprima'), files = process.argv.splice(2); files.forEach(function (filename) { var identifiers = {}, content = fs.readFileSync(filename, 'utf-8'), syntax = esprima.parse(content); JSON.stringify(syntax, function (key, value) { if (key === 'name' && typeof identifiers[value] === 'undefined') { identifiers[value] = value.length; } return value; }); for (var key in identifiers) { if (identifiers.hasOwnProperty(key)) { console.log(identifiers[key]); } } });
node idlen.js /path/to/some/*.js | sort -n | uniq -c
Source: https://habr.com/ru/post/143895/