better-mock icon indicating copy to clipboard operation
better-mock copied to clipboard

[BUG] 在当前 value 中的出现的函数是当前的 key 时, 不应有引用关系

Open wll8 opened this issue 5 years ago • 1 comments
trafficstars

问题简述 如果当前键的 key pick 是 mock 的生成函数, 则不应该出现递归引用. 否则导致循环引用而导致崩溃: Maximum call stack size exceeded .

{
  "pick": " @pick(['a', 'b'])"
}

复现步骤 点此 打开控制台粘贴以下代码:

s = Mock.mock({
  "pick": "@pick(['a', 'b'])"
})
console.log(s) // a
s = Mock.mock({
  "pick": " @pick(['a', 'b'])"
})
console.log(s) // Maximum call stack size exceeded

期望结果

s = Mock.mock({
  "pick": "@pick(['a', 'b'])"
})
console.log(s) // a
s = Mock.mock({
  "pick": " @pick(['a', 'b'])"
})
console.log(s) //  a

环境

  • Env: chrome 版本 86.0.4240.75(正式版本) (64 位)
  • OS: win10x64
  • better-mock version: [email protected]

wll8 avatar Oct 24 '20 13:10 wll8

先暂时使用 @PICK 代替解决,后续优化

lavyun avatar Oct 26 '20 06:10 lavyun