Closure Library welcomes patches/pulls for features and bugfixes.

For contributors inside Google, follow the instructions given here:
http://go/closure-contributors

For contributors external to Google, follow the instructions given here:

Notes on Contributions to Closure Library

Google Individual Contributor License

In all cases, contributors must sign a contributor license agreement,
either for an individual or corporation, before a patch can be
accepted. Please fill out the agreement for an individual or a
corporation, as appropriate.

https://developers.google.com/open-source/cla/individual
https://developers.google.com/open-source/cla/corporate

If you or your organization is not listed there already, you should
add an entry to the AUTHORS file as part of your patch.

If you plan to add a significant component or large chunk of code, it
is recommended to bring it up on the discussion list for a design
discussion before writing code.

If appropriate, write a unit test that demonstrates your patch. Tests are the
best way to ensure that future contributors do not break your code
accidentally.

To change the Closure Library source, you must submit a pull request
in GitHub. See the GitHub documentation here:

https://help.github.com/categories/63/articles

Closure Library developers monitor outstanding pull requests. They may
request changes on the pull request before accepting. They will also
verify that the CLA has been signed.

Oftentimes, the pull request will not be directly merged, but patched to
the internal Google codebase to verify that unit and integration tests
will Closure pass before submitting (and optionally make changes to
the patch to match style, fix text, or to make the code or comments
clearer). In this case, the issue associated with the pull request
will be closed when the patch pushed to the repository via the MOE
(Make Open Easy) system.

https://code.google.com/p/moe-java/
