Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否有工具验证ECMAScript并确认其与ECMAScript语言规范第三版兼容?_Javascript_Eclipse_Validation_Ecma262 - Fatal编程技术网

Javascript 是否有工具验证ECMAScript并确认其与ECMAScript语言规范第三版兼容?

Javascript 是否有工具验证ECMAScript并确认其与ECMAScript语言规范第三版兼容?,javascript,eclipse,validation,ecma262,Javascript,Eclipse,Validation,Ecma262,我目前正试图弄清楚为什么JSDT会发布类似“”的错误 在测试过程中,我意识到它可以很好地用于以下简单文件: var a = { urlParseRE: /^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]

我目前正试图弄清楚为什么JSDT会发布类似“”的错误

在测试过程中,我意识到它可以很好地用于以下简单文件:

var a = {
    urlParseRE: /^\s*(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/,
    test: b.replace(/^\/|(\/[^\/]*|[^\/]+)$/g, "")
};
并在jQuery.mobile-1.3.1.min.js等复杂文件上报告错误

我使用在线工具格式化模拟的jQuery脚本,然后删除其中几乎所有的内容,以制作一个简单的示例,这将有助于复制问题。当文件的大小从大约3000行减少到300行时,一些新的验证错误在上面的原始错误之前被发布。我以完全不同的问题结束了我的实验。验证错误发布在“”上,示例如下:

!function(){
    window.alert("passed 1");
}(),
function(){
    window.alert("passed 2");
}();
window.alert("passed 3");
我知道JSDT项目暂时处于休眠状态,在创建新版本之前,我想确定最后一个简单的js示例是否适用于ECMAScript语言规范第三版。是否有任何在线或离线工具来验证这一点?

您可以使用此工具

“用于多用途分析的ECMAScript解析基础结构”

如果您将最后一个块提供给Esprima的验证器,它会说“代码在语法上是有效的。”

Esprima遵循ES5,所以从技术上讲,它可以传递ES5相关的语法,而只有ES3兼容的解析器无法理解这些语法


但在本例中,我没有看到任何与ES5相关的内容,因此它一定是JSDT中的一个bug。

有点过时,但指出ES3和ES5问题

我不知道任何此类工具;无论如何,逗号运算符确实存在于ES3中。Ref:谢谢,我安装了Konqueror,因为它的布局引擎支持ECMAScript v3之前的脚本,并且现在将它用作我的验证工具。到目前为止,我的代码片段可以在其中工作,这证实了我使用的语法对v3是有效的。据我所知,这并不正确,但您始终可以使用符合ES3要求的设置来JSLint代码(,在线和离线)。我使用了在线版本,它似乎与配置/*JSLint browser:true,coach:false,es5:false,slopy:true,怀特:是的,它不明白!运算符相当于()并抱怨“将立即函数调用封装在括号中,以帮助读者理解表达式是函数的结果,而不是函数本身”。Esprima现在遵循ECMAScript 2016,这意味着您不能使用它来检查代码是否为ES3/ES5。不幸的是,有人知道其他网站吗??