【发布时间】:2017-07-17 21:32:36
【问题描述】:
我正在使用 Google 的闭包编译器来优化+混淆我通过 Duktape 在 Android 应用程序中运行的代码。我已经成功处理了 Closure 向我抛出的大部分警告信息。然而,有一些让我很难过。我应该怎么做才能对付他们?
var Uny =
{"version":1, "d":new Date(), "uOff":new Date().getTimezoneOffset()*60}
accessing name Date in externs has no effect. Perhaps you forgot to add a var keyword?
这是我在提供给 Closure CLI 的 externs.js 文件中声明的对象。
function moreSlotsToCome(slots,ndx)
{
var i,range;
for(i= ndx + 1;i < slots.length;i++)
{
range = makeRange(slots[i]);
if (range[0] == range[1]) break;
return 1;
}
return 0;
}
在上面的 for 循环中,^^^ 错误指示器指向 i++,会引发 WARNING - unreachable code。
var obj = JSON.parse(iBridge.rule()),
keys = Object.keys(obj);
WARNING - actual parameter 1 of Object.keys does not match formal parameter
found : *
required: Object
^^^ 指示器指向Object.keys(obj) 中的obj。我意识到这里的JSON.parse() 可以返回null,所以我尝试对null 进行显式测试,但这没有帮助。
【问题讨论】:
标签: javascript android google-closure-compiler duktape