title: Which Javascript minifier (cruncher) does the same things that the one Google uses for its JS APIs?
body: <p>I am a Google Maps API (javascript) developer. I have noticed that Google uses a Javascript minifier that has the following features:</p>
  
  <ol>
  <li>Shortens variables, properties, arguments, classes, function and method names, obfuscating the code. (eg. function1 -> a, function2 -> b, function3 -> c)</li>
  <li>Some variables, classes, properties and methods can be marked to not be crunched, so its name remains the same as documented in the API manual.</li>
  <li>It is rerun in each subversion of the API, like a build task, I noticed that because of the crunched names changes from one version to another.</li>
  </ol>
  
  <p>I have not found in the whole internet a Javascript minifier with those features. Anyone knows one?</p>