Change Log

February 13, 2012

New release: r06

This is a minor bugfix release that fixes a couple of issues with hoisting and IIFE.

Thanks to Kyle Robinson Young.

January 19, 2012

New release: r05

This release improves JSHint's support for variable hoisting and adds a new option, laxcomma.

  • JSHint now fully supports variables hoisting:
    /*jshint undef:true */
    
    function func() {
      function innerOne() {
        // Before: wrong error; Now: knows that innerTwo is defined below.
        innerTwo();
      }
    
      function innerTwo() {
      }
    }
  • We added a new option, laxcomma, that allows you to use comma-first coding style without turning on the laxbreak option. Related: GH-340.

Thanks to Charlie Robbins.

January 08, 2012

New release: r04

This is a bugfix release that also contains some improvements to our tests:

  • Added test coverage helper and restructured our test files.
  • Removed obsolete JSHint.edition property.
  • JSHint now makes sure that null references are not subscripted within typeof and delete operators.
  • JSHint now recognizes defensive semicolon technique:
    ; (function () { /* ... */ }());
    But still warns when in cases like this one:
    ; function () {}
  • Fixed an issue with latedef not working for a specific use of variable hoisting.
  • Fixed an intermittent bug with JSHint failing with an exception instead of returning a Too Many Errors message.
  • Fixed incorrect comments in JSC wrapper.
  • Fixed a bug with JSC wrapper not parsing options with spaces correctly.

Thanks to Mike Pennisi and Dan Vanderkam.

December 30, 2011

New release: r03

This release contains significant improvements to the way JSHint treats ES5 accessor functions:

  • Getters no longer raise the “Don't make functions within a loop” warnings.
  • JSHint no longer enforces value as parameter name for setter functions.
  • JSHint no longer requires setter functions to follow getters.
  • Improved checks for duplicate properties. For example, JSHint now understands that this code is valid:
    x = {
      get x: function () {},
      set x: function () {}
    };
    While this one is not:
    x = {
      get x: function () {},
      x: true
    };
  • Tests cover more use cases with ES5 accessors.

Also this release fixes a bug with JSHint producing false warning for the following code:

somevar.replace(/[0-9-]/g, '')

Related discussions:

  • GH-382: Do not allow to duplicate a setter.
  • GH-401: Correctly identify duplicate object properties.
  • GH-408: Follow-up to GH-401.
  • GH-383: Unescaped '-' in regexp.

Thanks to Máté Farkas and Wolfgang Kluge.

Welcome Wolfgang and Josh

Please welcome new JSHint Core team members Wolfgang Kluge and Josh Perez! I'm really excited to work with them on making JSHint the best code quality tool for JavaScript.

December 23, 2011

New release: r02

A huge* number of tweaks and bugfixes. New options: funcscope, esnext, multistr and smarttabs. To see what they do, refer to the docs.

Many thanks to our awesome contributors who participated in this release: Wolfgang Kluge, Josh Perez, Ben Blank, Rob Friesel, Matt, Nicholas Zakas, dionyziz, Ed Lui, Felix Gnass, Tom Rix, Dominic Barnes, Nick Goris, Nicolas Ferrero, Ron DeVera, Sean Carpenter, shahyar, Aparajita Fishman, ckknight, Jakub Suder and Dylan Smith.

* — Since it's been a few months this release is too big to summarzie. Future releases will be smaller and easier to summarize.

Hello.

Back-story

After almost a year into development we decided that it's time to make more frequent stable releases and keep a change log.

Here are some links from the past: