Javascript safari中的es5参数跟踪故障

Javascript safari中的es5参数跟踪故障,javascript,gruntjs,browserify,uglifyjs,mathjs,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}

在我的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库中找到了该函数 现在我真的不知道如何继续下去

编辑:该库的作者已立即修复该问题:)

您确定这是官方Browserify图书馆的一部分吗?如果没有,我们需要知道这是哪个库。Facepalm。仅当我包含mathjsWell时才包含它。我认为出现语法错误的原因是
函数有一个
名称
属性,该属性与参数名称完全匹配(在丑陋的代码中两者都是
k
):
函数k(k){…}
不幸的是,如果这是另一个库的一部分,我不知道你是怎么解决的,双面手掌。我知道这件事,但当我写完信时,我并没有想到这一点。唯一的解决办法是向mathjs和“朋友”公开问题。你应该始终展示你已经做过的其他调查: