2

webkitAudioContext在使用 Google Closure javascript 编写的应用程序中使用了 webkit 浏览器原生的构造函数。

在我使用 Plovr 在 ADVANCED 模式下编译我的 javascript 后,我​​发现decodeAudioData我的webkitAudioContext对象的方法被重命名为 obfuscated term c。说句公道话,

编译前:

var myAudioContext = new webkitAudioContext();
myAudioContext.decodeAudioData(fileData, myCallBackFunction);

编译后:

(new webkitAudioContext).c(a,b);

如何告诉 Closure javascript 编译器不要混淆 webkitAudioContext 的方法名称?我试过打电话

goog.exportSymbol('webkitAudioContext.prototype.decodeAudioData', webkitAudioContext.prototype.decodeAudioData);

无济于事。

4

1 回答 1

3

正如Felix Kling在他的评论中提到的,externs 文件用于防止重命名外部定义的符号。Closure Compiler 源代码在以下目录下有 externs 文件:

主干
 |--外部
 | -- 贡献
      |--外部

externs 文件contrib/externs/ w3c_audio.js包括webkitAudioContext.

请参阅 plovr externs配置选项。

于 2012-09-04T02:52:37.213 回答