es5参数遮蔽了野生动物园的麻烦

时间:2015-01-27 12:42:08

标签: javascript gruntjs browserify uglifyjs mathjs

在我的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

0 个答案:

没有答案