评论者:mikethompson
为了澄清:
1. 当我们的调试器处于断点时,
2. 用户可以在 repl 中输入一个表达式,
3. 作为响应,我们的调试器必须将用户输入的表达式编译为 JavaScript(然后执行它,显示结果),
4. 考虑到任何局部绑定(-----这是关键点)。<----
为了满足第4点,我们的工具提取当前调用框架中的所有“局部变量”,然后将所有这些局部绑定提供给 env/locals,这样编译器就不会在它们前面添加命名空间。
例如,如果调用堆栈中存在对 'x' 的本地绑定,并且用户的重新输入表达式涉及到 'x',那么我们希望编译器不要对符号 'x' 进行更改,也不在它前面添加某些命名空间。在最终的 JavaScript 中,它必须仍然是 'x',而不是 'some.namespace.x'。
我们实现这一目标的方法是在编译时将 'x' 放入 env/locals 中 - 并且一切正常。但是,由于最近的变更,这已经变得更具挑战性。因此,这张工单请求一种传递 env 的方法。