1f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch# [Google Closure Compiler](https://developers.google.com/closure/compiler/) 2f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 3f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch[![Build Status](https://travis-ci.org/google/closure-compiler.svg?branch=master)](https://travis-ci.org/google/closure-compiler) 4f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 5f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochThe [Closure Compiler](https://developers.google.com/closure/compiler/) is a tool for making JavaScript download and run faster. It is a true compiler for JavaScript. Instead of compiling from a source language to machine code, it compiles from JavaScript to better JavaScript. It parses your JavaScript, analyzes it, removes dead code and rewrites and minimizes what's left. It also checks syntax, variable references, and types, and warns about common JavaScript pitfalls. 6f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 7f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Getting Started 8f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * [Download the latest version](http://dl.google.com/closure-compiler/compiler-latest.zip) ([Release details here](https://github.com/google/closure-compiler/wiki/Releases)) 9f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * [Download a specific version](https://github.com/google/closure-compiler/wiki/Binary-Downloads). Also available via: 10f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch - [Maven](https://github.com/google/closure-compiler/wiki/Maven) 11f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch - [NPM](https://www.npmjs.com/package/google-closure-compiler) 12f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * See the [Google Developers Site](https://developers.google.com/closure/compiler/docs/gettingstarted_app) for documentation including instructions for running the compiler from the command line. 13f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 14f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Options for Getting Help 15f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch1. Post in the [Closure Compiler Discuss Group](https://groups.google.com/forum/#!forum/closure-compiler-discuss) 16f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch2. Ask a question on [Stack Overflow](http://stackoverflow.com/questions/tagged/google-closure-compiler) 17f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. Consult the [FAQ](https://github.com/google/closure-compiler/wiki/FAQ) 18f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 19f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Building it Yourself 20f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 21f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochNote: The Closure Compiler requires [Java 7 or higher](http://www.java.com/). 22f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 23f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Using [Maven](http://maven.apache.org/) 24f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 25f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch1. Download [Maven](http://maven.apache.org/download.cgi). 26f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 27f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch2. Add sonatype snapshots repository to `~/.m2/settings.xml`: 28f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch ``` 29f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <profile> 30f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <id>allow-snapshots</id> 31f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <activation><activeByDefault>true</activeByDefault></activation> 32f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <repositories> 33f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <repository> 34f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <id>snapshots-repo</id> 35f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <url>https://oss.sonatype.org/content/repositories/snapshots</url> 36f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <releases><enabled>false</enabled></releases> 37f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <snapshots><enabled>true</enabled></snapshots> 38f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </repository> 39f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </repositories> 40f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </profile> 41f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch ``` 42f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 43f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. Run `mvn -DskipTests` (omit the `-DskipTests` if you want to run all the 44f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochunit tests too). 45f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 46f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch This will produce a jar file called `target/closure-compiler-1.0-SNAPSHOT.jar`. 47f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 48f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Using [Eclipse](http://www.eclipse.org/) 49f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 50f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch1. Download and open the [Eclipse IDE](http://www.eclipse.org/). 51f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch2. Navigate to `File > New > Project ...` and create a Java Project. Give 52f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch the project a name. 53f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. Select `Create project from existing source` and choose the root of the 54f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch checked-out source tree as the existing directory. 55f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. Navigate to the `build.xml` file. You will see all the build rules in 56f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch the Outline pane. Run the `jar` rule to build the compiler in 57f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch `build/compiler.jar`. 58f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 59f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Running 60f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 61f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochOn the command line, at the root of this project, type 62f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 63f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 64f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochjava -jar target/closure-compiler-1.0-SNAPSHOT.jar 65f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 66f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 67f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochThis starts the compiler in interactive mode. Type 68f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 69f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch```javascript 70f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochvar x = 17 + 25; 71f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 72f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 73f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochthen hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux) 74f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochand "Enter" again. The Compiler will respond: 75f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 76f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch```javascript 77f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochvar x=42; 78f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 79f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 80f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochThe Closure Compiler has many options for reading input from a file, writing 81f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochoutput to a file, checking your code, and running optimizations. To learn more, 82f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochtype 83f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 84f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 85f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochjava -jar compiler.jar --help 86f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 87f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 88f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochMore detailed information about running the Closure Compiler is available in the 89f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch[documentation](http://code.google.com/closure/compiler/docs/gettingstarted_app.html). 90f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 91f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Compiling Multiple Scripts 92f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 93f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochIf you have multiple scripts, you should compile them all together with one 94f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochcompile command. 95f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 96f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch```bash 97f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochjava -jar compiler.jar --js_output_file=out.js in1.js in2.js in3.js ... 98f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 99f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 100f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochYou can also use minimatch-style globs. 101f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 102f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch```bash 103f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch# Recursively include all js files in subdirs 104f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochjava -jar compiler.jar --js_output_file=out.js 'src/**.js' 105f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 106f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch# Recursively include all js files in subdirs, excluding test files. 107f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch# Use single-quotes, so that bash doesn't try to expand the '!' 108f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochjava -jar compiler.jar --js_output_file=out.js 'src/**.js' '!**_test.js' 109f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch``` 110f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 111f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochThe Closure Compiler will concatenate the files in the order they're passed at 112f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochthe command line. 113f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 114f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochIf you're using globs or many files, you may start to run into 115f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochproblems with managing dependencies between scripts. In this case, you should 116f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochuse the [Closure Library](https://developers.google.com/closure/library/). It 117f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochcontains functions for enforcing dependencies between scripts, and Closure Compiler 118f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochwill re-order the inputs automatically. 119f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 120f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## How to Contribute 121f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Reporting a bug 122f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch1. First make sure that it is really a bug and not simply the way that Closure Compiler works (especially true for ADVANCED_OPTIMIZATIONS). 123f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * Check the [official documentation](https://developers.google.com/closure/compiler/) 124f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * Consult the [FAQ](https://github.com/google/closure-compiler/wiki/FAQ) 125f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch * Search on [Stack Overflow](http://stackoverflow.com/questions/tagged/google-closure-compiler) and in the [Closure Compiler Discuss Group](https://groups.google.com/forum/#!forum/closure-compiler-discuss) 126f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch2. If you still think you have found a bug, make sure someone hasn't already reported it. See the list of [known issues](https://github.com/google/closure-compiler/issues). 127f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. If it hasn't been reported yet, post a new issue. Make sure to add enough detail so that the bug can be recreated. The smaller the reproduction code, the better. 128f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 129f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Suggesting a Feature 130f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch1. Consult the [FAQ](https://github.com/google/closure-compiler/wiki/FAQ) to make sure that the behaviour you would like isn't specifically excluded (such as string inlining). 131f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch2. Make sure someone hasn't requested the same thing. See the list of [known issues](https://github.com/google/closure-compiler/issues). 132f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. Read up on [what type of feature requests are accepted](https://github.com/google/closure-compiler/wiki/FAQ#how-do-i-submit-a-feature-request-for-a-new-type-of-optimization). 133f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch4. Submit your request as an issue. 134f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 135f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Submitting patches 136f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch1. All contributors must sign a contributor license agreement (CLA). 137f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch A CLA basically says that you own the rights to any code you contribute, 138f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch and that you give us permission to use that code in Closure Compiler. 139f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch You maintain the copyright on that code. 140f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch If you own all the rights to your code, you can fill out an 141f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch [individual CLA](http://code.google.com/legal/individual-cla-v1.0.html). 142f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch If your employer has any rights to your code, then they also need to fill out 143f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch a [corporate CLA](http://code.google.com/legal/corporate-cla-v1.0.html). 144f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch If you don't know if your employer has any rights to your code, you should 145f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch ask before signing anything. 146f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch By default, anyone with an @google.com email address already has a CLA 147f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch signed for them. 148f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch2. To make sure your changes are of the type that will be accepted, ask about your patch on the [Closure Compiler Discuss Group](https://groups.google.com/forum/#!forum/closure-compiler-discuss) 149f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch3. Fork the repository. 150f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch4. Make your changes. 151f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch5. Submit a pull request for your changes. A project developer will review your work and then merge your request into the project. 152f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 153f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Closure Compiler License 154f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 155f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochCopyright 2009 The Closure Compiler Authors. 156f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 157f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochLicensed under the Apache License, Version 2.0 (the "License"); 158f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochyou may not use this file except in compliance with the License. 159f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochYou may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. 160f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 161f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochUnless required by applicable law or agreed to in writing, software 162f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochdistributed under the License is distributed on an "AS IS" BASIS, 163f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 164f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben MurdochSee the License for the specific language governing permissions and 165f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochlimitations under the License. 166f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 167f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch## Dependency Licenses 168f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 169f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Rhino 170f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 171f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 172f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 173f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 174f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td> 175f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <code>src/com/google/javascript/rhino</code>, <code>test/com/google/javascript/rhino</code> 176f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </td> 177f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 178f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 179f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 180f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 181f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>http://www.mozilla.org/rhino</td> 182f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 183f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 184f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 185f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 186f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>1.5R3, with heavy modifications</td> 187f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 188f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 189f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 190f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 191f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Netscape Public License and MPL / GPL dual license</td> 192f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 193f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 194f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 195f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 196f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>A partial copy of Mozilla Rhino. Mozilla Rhino is an 197f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochimplementation of JavaScript for the JVM. The JavaScript 198f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochparse tree data structures were extracted and modified 199f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochsignificantly for use by Google's JavaScript compiler.</td> 200f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 201f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 202f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 203f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 204f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>The packages have been renamespaced. All code not 205f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochrelevant to the parse tree has been removed. A JsDoc parser and static typing 206f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochsystem have been added.</td> 207f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 208f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 209f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 210f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Args4j 211f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 212f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 213f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 214f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 215f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/args4j.jar</code></td> 216f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 217f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 218f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 219f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 220f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>https://args4j.dev.java.net/</td> 221f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 222f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 223f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 224f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 225f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>2.0.26</td> 226f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 227f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 228f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 229f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 230f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>MIT</td> 231f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 232f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 233f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 234f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 235f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>args4j is a small Java class library that makes it easy to parse command line 236f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochoptions/arguments in your CUI application.</td> 237f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 238f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 239f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 240f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 241f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 242f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 243f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 244f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 245f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Guava Libraries 246f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 247f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 248f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 249f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 250f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/guava.jar</code></td> 251f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 252f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 253f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 254f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 255f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>https://github.com/google/guava</td> 256f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 257f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 258f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 259f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 260f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>20.0</td> 261f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 262f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 263f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 264f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 265f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Apache License 2.0</td> 266f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 267f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 268f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 269f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 270f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Google's core Java libraries.</td> 271f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 272f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 273f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 274f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 275f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 276f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 277f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 278f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 279f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### JSR 305 280f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 281f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 282f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 283f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 284f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/jsr305.jar</code></td> 285f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 286f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 287f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 288f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 289f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>http://code.google.com/p/jsr-305/</td> 290f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 291f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 292f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 293f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 294f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>svn revision 47</td> 295f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 296f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 297f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 298f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 299f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>BSD License</td> 300f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 301f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 302f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 303f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 304f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Annotations for software defect detection.</td> 305f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 306f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 307f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 308f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 309f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 310f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 311f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 312f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 313f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### JUnit 314f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 315f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 316f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 317f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 318f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/junit.jar</code></td> 319f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 320f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 321f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 322f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 323f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>http://sourceforge.net/projects/junit/</td> 324f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 325f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 326f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 327f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 328f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>4.11</td> 329f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 330f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 331f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 332f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 333f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Common Public License 1.0</td> 334f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 335f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 336f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 337f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 338f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>A framework for writing and running automated tests in Java.</td> 339f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 340f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 341f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 342f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 343f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 344f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 345f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 346f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 347f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Protocol Buffers 348f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 349f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 350f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 351f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 352f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/protobuf-java.jar</code></td> 353f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 354f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 355f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 356f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 357f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>https://github.com/google/protobuf</td> 358f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 359f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 360f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 361f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 362f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>2.5.0</td> 363f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 364f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 365f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 366f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 367f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>New BSD License</td> 368f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 369f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 370f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 371f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 372f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Supporting libraries for protocol buffers, 373f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochan encoding of structured data.</td> 374f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 375f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 376f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 377f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 378f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 379f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 380f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 381f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 382f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Truth 383f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 384f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 385f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 386f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 387f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/truth.jar</code></td> 388f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 389f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 390f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 391f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 392f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>https://github.com/google/truth</td> 393f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 394f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 395f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 396f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 397f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>0.24</td> 398f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 399f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 400f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 401f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 402f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Apache License 2.0</td> 403f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 404f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 405f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 406f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 407f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Assertion/Proposition framework for Java unit tests</td> 408f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 409f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 410f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 411f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 412f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 413f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 414f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 415f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 416f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Ant 417f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 418f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 419f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 420f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 421f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td> 422f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <code>lib/ant.jar</code>, <code>lib/ant-launcher.jar</code> 423f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </td> 424f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 425f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 426f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 427f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 428f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>http://ant.apache.org/bindownload.cgi</td> 429f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 430f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 431f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 432f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 433f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>1.8.1</td> 434f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 435f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 436f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 437f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 438f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Apache License 2.0</td> 439f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 440f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 441f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 442f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 443f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Ant is a Java based build tool. In theory it is kind of like "make" 444f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdochwithout make's wrinkles and with the full portability of pure java code.</td> 445f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 446f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 447f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 448f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 449f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 450f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 451f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 452f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 453f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### GSON 454f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 455f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 456f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 457f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 458f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>lib/gson.jar</code></td> 459f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 460f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 461f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 462f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 463f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>https://github.com/google/gson</td> 464f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 465f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 466f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 467f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 468f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>2.2.4</td> 469f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 470f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 471f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 472f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 473f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Apache license 2.0</td> 474f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 475f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 476f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 477f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 478f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>A Java library to convert JSON to Java objects and vice-versa</td> 479f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 480f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 481f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 482f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 483f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>None</td> 484f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 485f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 486f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 487f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch### Node.js Closure Compiler Externs 488f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 489f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch<table> 490f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 491f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Code Path</td> 492f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td><code>contrib/nodejs</code></td> 493f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 494f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 495f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 496f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>URL</td> 497f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>https://github.com/dcodeIO/node.js-closure-compiler-externs</td> 498f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 499f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 500f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 501f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Version</td> 502f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>e891b4fbcf5f466cc4307b0fa842a7d8163a073a</td> 503f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 504f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 505f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 506f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>License</td> 507f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Apache 2.0 license</td> 508f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 509f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 510f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 511f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Description</td> 512f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Type contracts for NodeJS APIs</td> 513f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 514f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch 515f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <tr> 516f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Local Modifications</td> 517f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch <td>Substantial changes to make them compatible with NpmCommandLineRunner.</td> 518f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch </tr> 519f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch</table> 520