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
}

我目前正在使用 JSHint 2.9.3

Has PR P2

最有用的评论

确认的; 感谢您的报告! 我已经提交了一个补丁来修复这个错误: https://github.com/jshint/jshint/pull/3046。

所有8条评论

我通过带有 jshint v2.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

我认为应该有像“未关闭的评论”这样的解析错误。

似乎与#2932 有关。

而对于 atom linter-jshint ,它们仍然在 jshint v2.9.2 上。 打开问题 AtomLinter/linter-jshint#353 以更新 jshint。

它实际上使用了一个范围,但是对于大多数用户来说,更新需要重新安装软件包,我只是要固定它。

我可以确认它在JSHint 演示中引发了相同的错误。

确认的; 感谢您的报告! 我已经提交了一个补丁来修复这个错误: https://github.com/jshint/jshint/pull/3046。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

voronianski picture voronianski  ·  8评论

jugglinmike picture jugglinmike  ·  6评论

ghost picture ghost  ·  5评论

arian picture arian  ·  7评论

stefanuddenberg picture stefanuddenberg  ·  7评论