Jshint: クラッシュの不完全なインスタンス

作成日 2016年10月02日  ·  8コメント  ·  ソース: jshint/jshint

不完全なinstanceofを書き込むと、 Cannot read property 'id' of undefinedがスローされます。

次の入力コードで問題が再現されます。

var something = [];
if(something instanceof) {
    // Notice the instanceof is missing the class name
}

現在、JSHint2.9.3を使用しています

Has PR P2

最も参考になるコメント

確認済み; レポートありがとうございます! このバグを修正するパッチを送信しました: https://github.com/jshint/jshint/pull/3046。

全てのコメント8件

この問題は、jshintv2.9.3のアトムパッケージlinter-jshintで発生しています。

Error: C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:5386
        throw err;
        ^

TypeError: Cannot read property 'id' of undefined
    at C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:2131:14
    at Object.x.led (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1155:16)
    at expression (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:926:36)
    at C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:2051:18
    at Object.x.led (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1155:16)
    at expression (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:926:36)
    at Object.fud (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:4423:22)
    at expression (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:885:32)
    at statement (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1636:9)
    at statements (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\jshint\src\jshint.js:1681:16)
    at ChildProcess.<anonymous> (C:\Users\emile.bergeron.CAMINO\.atom\packages\linter-jshint\node_modules\atom-linter\node_modules\sb-exec\lib\index.js:56:20)
    at emitTwo (events.js:100:13)
    at ChildProcess.emit (events.js:185:7)
    at maybeClose (internal/child_process.js:850:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)

次のようにコメントを開いたときの同じエラー:

module.exports = {
    attributes: {},
    /*sth: {},
    sth2: function(){}
};

これは、現在編集中のコードで自動的に実行されるツールが原因ですか?

アトムでは、linter-jshintを使用します。 しかし、そのコンテンツを含むファイルを保存してCLIからjshintを実行すると、同じエラーが発生しました。

jshint test.js

ファイルに

module.exports = {
    attributes: {},
    /*sth: {}
};

エラーを生成します:

/usr/local/lib/node_modules/jshint/src/jshint.js:5386
        throw err;
        ^

TypeError: Cannot read property 'id' of null
    at Object.x.nud (/usr/local/lib/node_modules/jshint/src/jshint.js:3240:26)
    at expression (/usr/local/lib/node_modules/jshint/src/jshint.js:888:34)
    at /usr/local/lib/node_modules/jshint/src/jshint.js:1389:20
    at Object.x.led (/usr/local/lib/node_modules/jshint/src/jshint.js:1155:16)
    at expression (/usr/local/lib/node_modules/jshint/src/jshint.js:926:36)
    at statement (/usr/local/lib/node_modules/jshint/src/jshint.js:1636:9)
    at statements (/usr/local/lib/node_modules/jshint/src/jshint.js:1681:16)
    at itself (/usr/local/lib/node_modules/jshint/src/jshint.js:5365:9)
    at lint (/usr/local/lib/node_modules/jshint/src/cli.js:495:8)

    at /usr/local/lib/node_modules/jshint/src/cli.js:656:7

'unclosedcomment'のような解析エラーがあるはずだと思います。

#2932に関連しているようです。

そして、atom linter-jshintの場合、それらはまだjshintv2.9.2にあります。 jshintを更新するためにAtomLinter / linter-jshint#353の問題を開きます。

実際には範囲を使用していますが、ほとんどのユーザーがパッケージを再インストールする必要がある更新として、ピン留めするだけです。

JSHintデモでも同じエラーが発生することを確認できます。

確認済み; レポートありがとうございます! このバグを修正するパッチを送信しました: https://github.com/jshint/jshint/pull/3046。

このページは役に立ちましたか?
0 / 5 - 0 評価