TypeError:'来电者','被叫'和'参数'在严格模式函数或调用它们的参数对象上可能无法访问这些属性

时间:2015-06-05 10:14:26

标签: mocha babeljs

以下错误意味着什么,我该如何解决?

$ npm test

> location-autosuggest@3.0.0 test /Users/mishamoroshko/location-autosuggest
> mocha test --compilers js:babel/register



  compareKeys()
    should return -1
      1) when first key is different


  0 passing (301ms)
  1 failing

  1) compareKeys() should return -1 when first key is different:
     TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them
      at Context.<anonymous> (compare-keys/compare-keys.test.js:3:16)

以下是相关部分:

比较密钥/比较-keys.test.js

1. 'use strict';
2. 
3. import { expect } from 'chai';

的package.json

"scripts": {
   "test": "mocha test --compilers js:babel/register"
}

.babelrc

{
  "stage": 0
}

mocha.opts

我没有。

版本

  • babel:5.5.1
  • 摩卡:2.2.5
  • chai:3.0.0

2 个答案:

答案 0 :(得分:0)

从ES5开始,在严格模式下,您无法使用callee等参数的某些属性。 例如,参见callee page上的MDN免责声明:

  

第5版ECMAScript(ES5)禁止使用arguments.callee()   在严格的模式。避免使用arguments.callee()   函数表达式一个名称或使用函数声明所在的位置   功能必须自己调用。

chai可能会使用其中一个属性。

答案 1 :(得分:-2)

我将babel更新为5.5.3并解决了问题。