Jshint: Instance incomplète de plantages

Créé le 2 oct. 2016  ·  8Commentaires  ·  Source: jshint/jshint

L'écriture d'une instanceof incomplète génère Cannot read property 'id' of undefined .

Le code d'entrée suivant devrait reproduire le problème :

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

J'utilise actuellement JSHint 2.9.3

Has PR P2

Commentaire le plus utile

Confirmé; merci pour le rapport ! J'ai soumis un correctif pour corriger ce bogue : https://github.com/jshint/jshint/pull/3046.

Tous les 8 commentaires

J'ai ce problème via le package atom linter-jshint avec 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)

Même erreur lors de l'ouverture d'un commentaire comme celui-ci :

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

Cela est-il dû à un outil qui s'exécute automatiquement sur le code en cours d'édition ?

Dans atom, j'utilise linter-jshint. Mais aussi lorsque j'enregistre un fichier avec ce contenu et que j'exécute jshint à partir de CLI, j'obtiens la même erreur.

jshint test.js

enregistré

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

génère une erreur :

/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

Je pense qu'il devrait y avoir une erreur d'analyse comme "commentaire non fermé".

Semble lié à #2932.

Et pour atom linter-jshint , ils sont toujours sur jshint v2.9.2. Ouverture du numéro AtomLinter/linter-jshint#353 pour mettre à jour jshint.

Il utilise en fait une plage, mais comme la mise à jour nécessite la réinstallation du package pour la plupart des utilisateurs, je vais simplement l'épingler.

Je peux confirmer qu'il génère la même erreur sur la démo JSHint .

Confirmé; merci pour le rapport ! J'ai soumis un correctif pour corriger ce bogue : https://github.com/jshint/jshint/pull/3046.

Cette page vous a été utile?
0 / 5 - 0 notes