アントン・コバリャノフ氏によって開発が進められている JSHint がバージョン2.0となりました。JSHintブログよりリリース記事を翻訳して掲載します。

JSLint から JSHint をフォークした理由で氏が述べられているように JSHint は「コミュニティ駆動型のオープンソースプロジェクト」を理念としており、今回のリリースではそれがより鮮明になったようです。



JSHint 2.0.0 is out 2013年5月7日

 
警告:本リリースには一部、前バージョンと互換性のない変更点が含まれている.

JSHint 2.0.0 が公開された。2.0.0は JSHint プロジェクトにとって大きな一里塚となるバージョンだ。というのもこのバージョンが、私がメインの開発者でない最初のリリースとなるからだ。個人的にはこれこそ JSHint がオープンソースプロジェクトとなった証(あかし)だと思っている。バグレポートやパッチをお寄せいただいき、素晴らしい貢献をしていただいた皆様に最大級の感謝の言葉を贈りたい。

EcmaScript 5

 
最初に一番重要な機能を紹介しよう。このバージョンから JSHint の想定する環境は ES5 となる。前のバージョンでは、JSHint はすべてのコードを ES3 仕様に基づいてチェックし、オプションとしてES5 モードでのチェックを採用していた。今バージョンでは、ES5 モードがデフォルトとなり、もし ES3 仕様でチェックしたい場合( IE6 のような太古時代のブラウザで開発するような場合)は es3:true とする必要がある。

この仕様変更に多大な貢献をしてくれた Rick Waldron 氏に感謝する。

Mozilla JavaScript 拡張と ES6 への部分対応

 
新しく開発メンバーに加わった Bernard Pratz 氏のおかげで、JSHint は Mozilla JavaScript 拡張( moz オプション)と ES6( esnext オプション)に部分対応するようになった。
対応点一覧:

  • 破壊的代入 
  • const
  • let ブロックと式
  • ジェネレータとイテレータ
  • List comprehension
  • Try/catch フィルタと複数 catch ブロック
  • 簡易メソッド宣言
  • for ... of ループ
  • Fat arrow 関数( => )

クラス等 ES6 の他の便利な機能も、今後サポートに追加予定である。ぜひ期待されたい。

CLI

  • JSHint はチェックファイルのディレクトリ中の .jshintrc ファイルを参照するようになった(#833)。
  • Node CLI モジュールのクロスプラットフォーム機能に関する様々な修正。
  • CLI exportの新しいパブリックメソッド。サードパーティによるファイル解決ロジックへの接続を可能にした(#741)。

全般

  • 非 Node システム向けに最新版の Browserify に対応した。これにより Rhino で生じていたパフォーマンス上の問題が解決された。

  • ブラウザ環境下での SVG グローバル変数への対応。

  • smarttabsオプションにより、一行/複数行コメント内でのタブとスペースの混在に対応。

  • 警告を無視しないためのプラグマを追加。

    /*jshint -W096 */
    
    // ここでは予想外の結果を生じるキーについての警告は
    // 無視される
    
    /*jshint +W096 */
    
    // ここでは無視されない。
  • 未知の JSLint オプションの無視機能を追加。

  • indent:false がインデント警告を引き起こしていたバグの修正(#1035)。

  • unused が正しく動作しない回帰バグを修正(#996)。

  • その他無数の細かいバグ修正。

迅速な更新スケジュールへ

 
最後に一つ触れておきたい。このバージョン以降、JSHint の更新スケジュールをより迅速なものとしたいと考えている。つまりこれまでより頻繁に JSHint がバージョンアップされるようになるということだ。その際、semver勧告を最大限尊重したい。ただし、規約にもある通り本ソフトの使用にあたり、一切の保証はない。

パッチを送付していただいた以下の皆さん、本当にありがとう!
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、 Kevin Locke




(2013/05/10 07:55 投稿)