Jshint: Unvollständige Instanz von Abstürzen

Erstellt am 2. Okt. 2016  ·  8Kommentare  ·  Quelle: jshint/jshint

Das Schreiben einer unvollständigen Instanz von löst Cannot read property 'id' of undefined .

Der folgende Eingabecode sollte das Problem reproduzieren:

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

Ich verwende derzeit JSHint 2.9.3

Has PR P2

Hilfreichster Kommentar

Bestätigt; danke für den bericht! Ich habe einen Patch eingereicht, um diesen Fehler zu beheben: https://github.com/jshint/jshint/pull/3046.

Alle 8 Kommentare

Ich habe dieses Problem durch das Atom-Paket linter-jshint mit 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)

Gleicher Fehler beim Öffnen eines Kommentars wie diesem:

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

Wird dies durch ein Tool verursacht, das automatisch auf Code ausgeführt wird, der gerade bearbeitet wird?

In Atom verwende ich Linter-Jshint. Aber auch wenn ich eine Datei mit diesem Inhalt speichere und jshint über die CLI ausführe, wurde derselbe Fehler angezeigt.

jshint test.js

aktenkundig

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

erzeugt Fehler:

/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

Ich denke, dass es einen Analysefehler wie 'ungeschlossener Kommentar' geben sollte.

Scheint mit #2932 verwandt zu sein.

Und für atom linter-jshint sind sie immer noch auf jshint v2.9.2. Eröffnungsproblem AtomLinter/linter-jshint#353 dort, um jshint zu aktualisieren.

Es verwendet tatsächlich einen Bereich, aber als Aktualisierung, die für die meisten Benutzer eine Neuinstallation des Pakets erfordert, werde ich es einfach anheften.

Ich kann bestätigen, dass es den gleichen Fehler in der JSHint-Demo auslöst .

Bestätigt; danke für den bericht! Ich habe einen Patch eingereicht, um diesen Fehler zu beheben: https://github.com/jshint/jshint/pull/3046.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen