在我的 Grunt/yeoman/angular 项目中,我将部分代码编写为节点模块,并在使用 browserify 构建项目期间由 Grunt 导入。碰巧的是,仅在 safari 上(在 7 和 8 上检查),由于此错误,webapp 的缩小版本不起作用:
SyntaxError:无法在严格模式下声明名为“k”的参数
我发现这行代码是这样的:
c.prototype.key=function k(k){var a=this._baseState;return f(null===a.key),a.key=k,this}
起始代码是:
Node.prototype.key = function key(key) {
var state = this._baseState;
assert(state.key === null);
state.key = key;
return this;
};
我不明白它是否是 browserify 库的一部分,但是当我将 mathjs 添加到项目中时肯定会包含它。我尝试使用 uglifyJS mangle 选项保留单词“key”,但“key”也是保留字。
我怎样才能避免这种问题?我使用了错误的方法吗?
编辑:我在 asn1 lib https://github.com/indutny/asn1.js/blob/master/lib/asn1/base/node.js#L225中找到了该函数 现在我真的不知道该怎么做。
编辑:图书馆的作者已经解决了这个问题:) https://github.com/indutny/asn1.js/commit/c75d861e705df9559bf572e682552278b98a218d