Menulis instanceof yang tidak lengkap melempar Cannot read property 'id' of undefined
.
Kode input berikut harus mereproduksi masalah:
var something = [];
if(something instanceof) {
// Notice the instanceof is missing the class name
}
Saat ini saya menggunakan JSHint 2.9.3
Saya mengalami masalah ini melalui paket atom linter-jshint dengan jshint v2.9.3.
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)
Kesalahan yang sama saat membuka komentar seperti ini:
module.exports = {
attributes: {},
/*sth: {},
sth2: function(){}
};
Apakah ini disebabkan oleh alat yang berjalan secara otomatis pada kode yang sedang diedit?
Dalam atom saya menggunakan linter-jshint. Tetapi juga ketika saya menyimpan file dengan konten itu dan menjalankan jshint dari CLI mendapat kesalahan yang sama.
jshint test.js
di file
module.exports = {
attributes: {},
/*sth: {}
};
menghasilkan kesalahan:
/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
Saya pikir harus ada kesalahan penguraian seperti 'komentar tidak tertutup'.
Tampaknya terkait dengan #2932.
Dan untuk atom linter-jshint , mereka masih menggunakan jshint v2.9.2. Membuka masalah AtomLinter/linter-jshint#353 di sana untuk memperbarui jshint.
Ini sebenarnya menggunakan rentang, tetapi karena pembaruan yang memerlukan instalasi ulang paket untuk sebagian besar pengguna, saya hanya akan menyematkannya.
Saya dapat mengkonfirmasi itu melempar kesalahan yang sama pada demo JSHint .
Dikonfirmasi; terima kasih atas laporannya! Saya telah mengirimkan tambalan untuk memperbaiki bug ini: https://github.com/jshint/jshint/pull/3046.
Komentar yang paling membantu
Dikonfirmasi; terima kasih atas laporannya! Saya telah mengirimkan tambalan untuk memperbaiki bug ini: https://github.com/jshint/jshint/pull/3046.