【发布时间】:2016-08-23 17:20:45
【问题描述】:
我目前正在开发一个依赖于arguments.callee.caller 的库。这与"use strict" 不兼容,因此在以严格模式定义调用函数时会引发错误。我发现了这些错误,它们并不重要,因为重要的部分不是在严格模式下定义的。有没有只支持严格模式的环境,所以不兼容这个lib?
【问题讨论】:
-
如果您想知道的话,可以使用命令行标志强制节点在严格模式下执行所有代码。
-
你需要
.caller做什么? -
@Bergi 谢谢!我想知道类似的事情。 :-) 我使用调用者在非 v8 环境中执行
Error.captureStackTrace(o, fn)之类的操作:github.com/inf3rno/e3/blob/master/lib/stackAdapter/StackAdapter/… 我目前正在测试arguments.callee.caller以进行优雅降级,但该测试无法通过严格模式捕获错误。我需要修改它。 -
@Bergi 是否有任何非节点环境强制执行严格模式?或者至少有一个浏览器不支持arguments.callee.caller,但支持ES5?当前代码通过node和chrome使用
Error.prepareStackTrace(),所以不受影响。 -
如果
arguments.callee没有被各种 lint 工具之一捕获,我会感到惊讶。