[英]Google Closure Compiler, some properties will never be renamed?
今天,我发现一个与Google Closure Compiler重命名属性有关的问题。 如果有人可以解释为什么我会很高兴这样的代码:
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// @output_file_name default.js
// ==/ClosureCompiler==
// ADD YOUR CODE HERE
console.info({
foo: 'bar',
index: 10,
bla: 'x'
});
始终编译为:
console.info({b:"bar",index:10,a:"x"});
属性“索引”将永远不会重命名为其他名称。 问题是为什么? 以及如何强制将其重命名?
通常,Closure Compiler可以基于类型进行重命名。 但是,面对松散类型,它确实会退后。 没有直接分配给原型属性的对象文字是那些松散类型之一。 此处未重命名,因为标准extern中存在“ index”属性。 有几种定义,但这是一种:
只是没有时间了解这个“非常聪明的逻辑”,我只是将此属性重命名为其他对象未使用的其他属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.