рд▓реЛрдХрдкреНрд░рд┐рдп рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рдФрд╕рдд рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рд▓рдВрдмрд╛рдИ 8.27 рд╡рд░реНрдг рд╣реИ


15 рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрд▓ рдЪрд░рд┐рддреНрд░ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рдЖрдо рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрдо 6-рд╡рд░реНрдг рдХреЗ рдирд╛рдоред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рдгрд╛рдо Esprima рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдереЗ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд░реНрд╕рд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд▓рд┐рдЦрд╛ рдерд╛ , рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ рдЬреИрд╕реЗ рдХрд┐ jQuery, рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк, MooTools, Underscore, рдФрд░ рдХреБрдЫ рдЕрдиреНрдпред

рдкрд╛рдВрдЪ рд╕рдмрд╕реЗ рд▓рдВрдмреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рд╣реИрдВ:
рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-1.7.0.0.jsSCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING
рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-1.7.0.0.jsMOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED
jQuery-1.7.1.jssubtractsBorderForOverflowNotVisible
jquery.mobile-1.0.jsgetClosestElementWithVirtualBinding
рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк-1.7.0.0.jsHAS_EXTENDED_CREATE_ELEMENT_SYNTAX


Node.js рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЕрддреНрдпрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рд╢реАрд▓рддрд╛ рдпрд╛ рдЕрддреНрдпрдзрд┐рдХ рдХрдареЛрд░ рд╕рд╣рдорддрд┐ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рд╕рд┐рдХ рдирдореВрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЪрд░ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдирд╛рдордХрд░рдг рдХреА рдЕрдкрдиреА рд╢реИрд▓реА рдХреА рддреБрд▓рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 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/In143895/


All Articles