2

我终于到了我的JavaScript代码编译在谷歌封闭编译器没有任何错误或警告的地步。现在我想重新编译生成的代码,并且在将代码粘贴回编译器时,我收到了超过100条警告:其中大多数是JSC_REDECLARED_VARIABLE和几个JSC_INEXISTENT_PROPERTY。谷歌封闭编译器 - 双编译

这是为什么?

enter image description here

+0

你能举一个例子来重现这个错误吗?这听起来不太可能atm(例如'JSC_REDECLARED_VARIABLE'错误,这意味着GCC会创建至少两次声明相同变量的代码)。 – 2012-03-19 14:11:43

+0

@RobW:这是问题的截图;该名单继续。 – frenchie 2012-03-19 14:16:25

+0

单独的核心js文件大约4000行,随处可用函数调用;不能只是做一个简化的演示。 – frenchie 2012-03-19 14:32:44

回答

1

我不认为谷歌关闭编译器产生的目的是进一步汇编代码。

要使代码正确编译,必须保留一些结构。但是额外的结构是编译器删除的东西,如果没有它,编译器无法正确解释代码。

你应该可以做更简单的编译模式,但不能使用高级模式。

+0

我试图先在简单模式下编译我的代码,然后复制该输出以进行高级编译:同样的问题。它看起来像所有的问题都来自这样的行:function ...(a){... a =它不喜欢函数参数获得新的任务 – frenchie 2012-03-19 14:28:38

+0

最好的可能是只编译一次。你为什么要编译两次? – 2012-03-19 14:47:19

+0

那么我打算做一个双重模糊处理,所以我想看看在编译成混淆器之前,google编译器生成的代码是什么样的。但可能是双重的,任何事情都可能不是最好的。 – frenchie 2012-03-19 14:50:43

0

REDECLARED_VARIABLE是WARNING不是错误。它旨在向开发者指出可能的问题。如果开发人员知道他们在做什么以及编译器在做什么,开发人员可能会忽略它