Usually, when I try to know more about a program based on its sources, I try to run doxygen
on it and to extract the documentation and the global architecture of it (class hierarchy, modules, packages, call-stack, ...). It does help a lot. Another way, is also to run static-analyzers on the source such as cppcheck
(C/C++), clang static-analyzer (c/c++) or pmd
(Java), pylint
(Python) and to look at the output.
I recently had to look at a Javascript program and I was a bit disappointed because I did not find any tool to perform good static analysis on it, nor tools to extract the software architecture (I found several scripts that were trying to convert the Javascript in a language accepted by Doxygen but none were able to work properly and extract something valuable). So, I wonder if I missed something when looking for these tools. Can somebody point me interesting tools about Javascript automated analysis ? Or, at least, explain to me why it is difficult (or impossible).
Note: I'm not speaking about Google Dart, but the usual Javascript (ECMAScript).