JSHint 2.0.0 is out 07 May 2013

WARNING: This release introduces backwards incompatible changes.

JSHint 2.0.0 is out! This version hits a pretty big milestone for the project: this is the first JSHint release for which I’m not the biggest contributor. I personally believe this fact validates JSHint as a successful open source project. And I’m extremely thankful to all you who file bug reports and send patches—you’re all awesome.

EcmaScript 5

The first and foremost: starting with this version JSHint will assume ES5 as the default environment. Before, JSHint was checking all the code per ES3 specification with an option to enable ES5 mode. Now ES5 mode is the default mode and if you want to check your code against the ES3 specification (useful when developing for super old browsers such as Internet Explorer 6) you will have to use es3:true.

Special thanks to Rick Waldron for championing this change.

Partial support for Mozilla JavaScript extensions and ES6

Thanks to our newest core contributor, Bernard Pratz, JSHint now has partial support for Mozilla JavaScript extensions (moz option) and ES6 (esnext option):

We have more patches in queue that add support for classes and other nifty ES6 things. Stay tuned!

CLI

General

New rapid release schedule

And last but not least: starting with this version, I’m switching JSHint to a more rapid release schedule. This simply means that I will be publishing new versions of JSHint more often. I will try my best to follow semver recommendations and ship working software. But as our license says, no guarantees.

Thanks to Bernarnd Pratz, Michelle Steigerwalt, Yuya Tanaka, Matthew Flaschen, Juan Pablo Buritica, Matt Cheely, Steve Mosley, Stephen Sorensen, Rick Waldron, Hugues Malphettes, Jeff Thompson, xzyfer, Lee Leathers, croensch, Steven Benner, James Allardice, Sindre Sorhus, Jordan Harband, Stuart Knightley and Kevin Locke for sending patches!

JSHint 1.1.0 is out 05 March 2013

JSHint 1.1.0 is out! This release contains important bug fixes for 1.0.0 and a couple of new features.

I would also like to use this moment to say hi to my friends and family, and remind everyone that we’re running a fundraising campaign on BountySource. All money donated will be used to pay contributors for fixing bugs and shipping new features. So if you like JSHint donate today. And if you hate JSHint donate tomorrow.

JSHint 1.0.0 is out 27 February 2013

JSHint 1.0.0 is now officially released. You can download it from this website or install via NPM:

$ npm install jshint

Also, we have a new website with new up-to-date documentation! Check it out and let us know what you think. For full 1.0.0 changelog please see our 1.0.0 RC1 announcement.

JSHint 1.0.0 RC4 18 January 2013

JSHint 1.0.0 Release Candidate 4 is now out:

Here’s how you can install this release candidate:

$ npm install https://github.com/jshint/jshint/archive/1.0.0-rc4.tar.gz

For full 1.0.0 changelog please see our 1.0.0 RC1 announcement.

JSHint 1.0.0 RC3 01 January 2013

JSHint 1.0.0 Release Candidate 3 is now out:

Here’s how you can install this release candidate:

$ npm install https://github.com/jshint/jshint/archive/1.0.0-rc3.tar.gz

For full 1.0.0 changelog please see our 1.0.0 RC1 announcement.

JSHint 1.0.0 RC2 31 December 2012

JSHint 1.0.0 Release Candidate 2 is now out:

Here’s how you can install this release candidate:

$ npm install https://github.com/jshint/jshint/archive/1.0.0-rc2.tar.gz

For full 1.0.0 changelog please see our 1.0.0 RC1 announcement.

Big thanks to Samuel Cole for submitting patches and finding bugs!

JSHint 1.0.0 RC1 29 December 2012

UPDATE: JSHint 1.0.0 RC3.


After three months and 100+ commits, JSHint 1.0.0 is ready for release. This is the biggest release for JSHint so far, and that’s why I’ve decided to run it through a release candidate phase first. I tried my best to make it as backwards compatible as possible, but there might be a small number of incompatibilities depending on how you use JSHint. Please keep that in mind and test your integration before updating to 1.0.0.

One of the biggest changes is that node-jshint is now part of the main JSHint project, which means that there will no longer be lag time between releasing a new version and publishing it on NPM. Node and NPM is now the main and recommended way of using JSHint on all platforms. This also means that starting with “1.0.0”, JSHint will start using the node-semver versioning system instead of the old rN system.

In addition, this version drops support for non-ES5 environments. This means that JavaScript engines that don’t support the ES5 syntax will not even parse JSHint’s source code. (For example, the online interface for JSHint will not work in older versions of IE.)

I’m very excited to finally release this version and I encourage everyone to try out the release candidate and report any bugs and issues you encounter. The full changelog is provided below, with examples and links to relevant issues.

Parser

This version has a completely rewritten lexer. Since it’s no longer a giant regexp, the new lexer is more robust and easier to read. I’d like to thank the authors of Esprima and Traceur since I borrowed some pieces from them.

Bug fixes:

General

Bug fixes:

CLI

This version includes several improvements to the Node version of JSHint:

Bug fixes:

What’s next?

I plan to test this release candidate for about a week before marking it as stable and publishing on NPM. And, at the same time, I will be updating the documentation and the jshint.com website. If you notice any bugs or unexpected backwards-incompatible changes, please file a bug.

RC3 is out: JSHint 1.0.0 RC3.

Here’s how you can install this release candidate:

$ npm install https://github.com/jshint/jshint/archive/1.0.0-rc1.tar.gz

For Rhino wrapper, you will need to clone our repo and build jshint-rhino:

$ node make.js build
$ rhino dist/jshint-rhino.js ...

Contributors

Thanks to Bernhard K. Weisshuhn, James Allardice, Mike MacCana, Stephen Fry, Steven Olmsted, Leith Abdulla, Eric Promislow and Vlad Gurdiga for submitting patches!

New blog 24 October 2012

Welcome to the official JSHint blog. This blog will serve two purposes. First, it will replace our old Changelog page where we announce new JSHint releases. Second, I will use this blog as a platform to share stuff about static code analysis I find interesting.

For example, Ariya Hidayat (of Esprima and PhantomJS) gave what seems to be a very nice talk a few days ago at the EmpireJS. His slides are embedded below.

Oh and check out jshint.com, it has a cool new header.

New release: r12 25 September 2012

This is mostly a bugfix release:

Thanks to Dav Glass, Mariusz Nowak and Brad Harris.

New release: r11 03 September 2012

This release adds new checks for excessive code! You can now use JSHint to check number of parameters per function, nested block depth per function, number of statements per function and function’s cyclomatic complexity. More information in our docs or in this brilliant patch.

Other changes:

Thanks to Josh Heidenreich, Rick Waldron, Nikolay Frantsev, shybyte.

More posts available in the archive.