Javascript google闭包编译器-双重编译

Javascript google闭包编译器-双重编译,javascript,compiler-construction,google-closure-compiler,Javascript,Compiler Construction,Google Closure Compiler,我终于达到了我的javascript代码在google闭包编译器中编译时没有任何错误或警告的地步。现在我想重新编译生成的代码,当我将代码粘贴回编译器时,我收到100多条警告:其中大多数是JSC_重新声明的_变量和一些JSC_不存在的_属性 为什么呢 我认为Google Closure编译器不会生成用于进一步编译的代码 要使代码正确编译,必须保持一定的结构。但是这个额外的结构被编译器删除了,没有它,编译器就不能正确地解释代码 您应该能够执行更简单的编译模式,但不能执行高级编译模式。重新声明的_变量

我终于达到了我的javascript代码在google闭包编译器中编译时没有任何错误或警告的地步。现在我想重新编译生成的代码,当我将代码粘贴回编译器时,我收到100多条警告:其中大多数是JSC_重新声明的_变量和一些JSC_不存在的_属性

为什么呢


我认为Google Closure编译器不会生成用于进一步编译的代码

要使代码正确编译,必须保持一定的结构。但是这个额外的结构被编译器删除了,没有它,编译器就不能正确地解释代码


您应该能够执行更简单的编译模式,但不能执行高级编译模式。

重新声明的_变量是一个警告,而不是错误。它旨在向开发人员指出可能存在的问题。如果开发人员知道自己在做什么,并且编译器也知道,那么他们可能会忽略这一点。

您能举个例子重现这个错误吗?这听起来不太可能(例如,
JSC\u重新声明的\u变量
错误意味着GCC创建的代码至少声明了同一个变量两次)。@RobW:下面是问题的屏幕截图;单是核心js文件就有大约4000行,到处都是函数调用;我不能只做一个简化的演示。我尝试先以简单模式编译代码,然后复制输出进行高级编译:同样的问题。看起来所有的问题都来自这样一行:函数…(a){…a=它不喜欢函数参数获取新赋值最好的可能是只编译一次。为什么要编译两次?我计划进行双重模糊处理,所以我想在粘贴到模糊处理程序之前看看google编译器生成的代码是什么样子。但可能是双重的。任何东西都可能不是b最值得一做的事情。谷歌编译器不是最好的模糊处理工具。虽然生成的代码可能看起来很吓人,但如果你通过一个beutifier运行它,它会变得非常好看。真正的JS模糊处理使用了很多其他技术,使得它很难破译,包括多个级别的求值来击败beutifier。但即使是这样,它也可以被解析如果你真的想,那只是时间问题。是的,我知道模糊处理只能换来时间,但这正是我想要的。我将在jscrambler中模糊谷歌编译器的输出。你有推荐的模糊处理程序吗?