ESLint v3.7.0

前 [v3.6.0] | 次 [v3.8.0]

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">ESLint v3.7.0 released: <a href="https://t.co/7rmTlsysDs">https://t.co/7rmTlsysDs</a></p>&mdash; ESLint (@geteslint) <a href="https://twitter.com/geteslint/status/781931255470456832">2016年9月30日</a></blockquote>
<script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

ESLint 3.7.0 がリリースされました。

今回はマイナーリリースですが、いつもの隔週リリースではなくて、ちょっとした事故リリースです。
バグ修正ブランチに機能追加が入っちゃった、まぁいっか! という感じ。ふぁにー。

また、この期間中に ESLint のコミッターが1名増えました。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">Happy to share that <a href="https://twitter.com/not_aardvark">@not_aardvark</a> is now ESLint committers!</p>&mdash; ESLint (@geteslint) <a href="https://twitter.com/geteslint/status/781664968974360576">2016年9月30日</a></blockquote>

彼の仕事はとても速く、今回のバグ修正と機能追加の大半は彼によるものです。
(ここ数回のリリースのほとんどすべての `--fix` サポート追加は彼によるものです)

質問やバグ報告等ありましたら、お気軽にこちらまでお寄せください。

- :globe_with_meridians: [日本語 Issue 管理リポジトリ](https://github.com/eslint/eslint-jp)
- :speech_balloon: [日本語サポート チャット](https://gitter.im/eslint/eslint-jp)
- :globe_with_meridians: [本家リポジトリ](https://github.com/eslint/eslint)
- :speech_balloon: [本家サポート チャット](https://gitter.im/eslint/eslint)

----

# :bulb: 新しいルール

今回はありません。

# :wrench: オプションが追加されたルール

今回はありません。

# :pencil: 新たに eslint --fix をサポートしたルール

## [#7186]: [dot-location]

複数行に渡るプロパティアクセス式のドットの位置を修正します。

```js:例
foo.
  doSomething()
// ↓
foo
  .doSomething()
```

## [#7196]: [wrap-iife]

即時実行される関数式 (Immediately-Invoked Function Expression; IIFE) をカッコで囲みます。

```js:例
!function() {
    doSomething()
}()
// ↓
!(function() {
    doSomething()
}())
```

## [#7199]: [yoda]

比較式において、左辺がリテラル、右辺が変数だった場合にこれを反転させます。

```js:例
let a = (1 === b)
// ↓
let a = (b === 1)
```

## [#7205]: [prefer-numeric-literals]

`parseInt("777", 8)`のような結果的に定数になる2進数・8進数・16進数の`parseInt`関数呼び出しを、対応する数値リテラルに修正します。

```js:例
let a = parseInt("1111", 2)
let b = parseInt("777", 8)
let c = parseInt("DEADBEAF", 16)
// ↓
let a = 0b1111
let b = 0777
let c = 0xDEADBEAF
```

## [#7210]: [no-undef-init]

`undefined`による初期化を削除します。

```js:例
let obj = undefined
// ↓
let obj
```

## [#7207]: [no-useless-computed-key]

不必要な Computed Property のプロパティ名を普通のプロパティ名に修正します。

```js:例
let s = { ["foo"]: 1 }
// ↓
let s = { "foo": 1 }
```

プロパティ名を囲むクォートについては既存の [quote-props] ルールと [quotes] ルールが取り扱います。
例えば、[quote-props] ルールが `as-needed` 指定されていた場合は `{ foo: 1 }` に自動修正されます。

## [#7217]: [lines-around-directive]

`"use strict"`等のディレクティブ プロローグの前後の空行を自動修正します。

```js:例
function foo() {
    "use strict"
    doSomething()
}
// ↓
function foo() {
    "use strict"

    doSomething()
}
```

[v3.6.0]: http://qiita.com/mysticatea/items/9fd48f9ac3faac578c62
[v3.8.0]: http://qiita.com/mysticatea/items/6f037c15057c57982453
[#7186]: https://github.com/eslint/eslint/issues/7186
[#7196]: https://github.com/eslint/eslint/issues/7196
[#7199]: https://github.com/eslint/eslint/issues/7199
[#7205]: https://github.com/eslint/eslint/issues/7205
[#7210]: https://github.com/eslint/eslint/issues/7210
[#7207]: https://github.com/eslint/eslint/issues/7207
[#7217]: https://github.com/eslint/eslint/issues/7217
[dot-location]: http://eslint.org/docs/rules/dot-location
[lines-around-directive]: http://eslint.org/docs/rules/lines-around-directive
[no-undef-init]: http://eslint.org/docs/rules/no-undef-init
[no-useless-computed-key]: http://eslint.org/docs/rules/no-useless-computed-key
[prefer-numeric-literals]: http://eslint.org/docs/rules/prefer-numeric-literals
[quote-props]: http://eslint.org/docs/rules/quote-props
[quotes]: http://eslint.org/docs/rules/quotes
[wrap-iife]: http://eslint.org/docs/rules/wrap-iife
[yoda]: http://eslint.org/docs/rules/yoda