评论者:mikethompson
为了清楚起见
1. 当我们的调试器在断点处时,
2. 用户可以在repl中输入一个表达式,
3. 作为响应,我们的调试器必须将用户输入的表达式编译为javascript(然后执行它,显示结果),
4. 考虑到任何局部绑定。<----这是关键点。
为了满足第4点,我们的工具从当前的调用帧中提取所有 'locals',然后将所有这些局部绑定提供给 env/locals,这样编译器就不会在它们前面加上命名空间。
例如,如果在调用堆栈中有对 'x' 的局部绑定,并且用户的repl输入表达式涉及到 'x',那么我们希望编译器让符号 'x' 保持原样,不要在其前面加上任何命名空间。在最终的javascript中,它必须是 'x',而不是 'some.namespace.x'
我们实现这一目标的方法是在编译时将'x'放入env/locals中,并且一切正常。除了最近的更改,这变成了一项更大的挑战。因此,这个工单要求提供传入env的方式。