Debugger: Difference between revisions

73 bytes added ,  6 September 2012
[master c06c44c] Clarify Debugger.Object::evalInGlobalWithBindings.
m (Rename debug-api to api; this whole repo is about debugging. Visit wiki text in Visual Line Mode in Emacs. 573ab2bce78d6e15f703bb4ba6c6ddc37d20b25d)
([master c06c44c] Clarify Debugger.Object::evalInGlobalWithBindings.)
Line 744: Line 744:
This method allows debugger code to introduce temporary bindings that are visible to the given debuggee code and which refer to debugger-held debuggee values, and do so without mutating any existing debuggee environment.
This method allows debugger code to introduce temporary bindings that are visible to the given debuggee code and which refer to debugger-held debuggee values, and do so without mutating any existing debuggee environment.


Note that, like <code>evalInGlobal</code>, declarations in the <i>code</i> passed to <code>evalInGlobalWithBindings</code> affect the referent global object, even as <i>code</i> is evaluated with <i>bindings</i> visible. (In the terms used by the ECMAScript specification, the <code>VariableEnvironment</code> of the execution context for the eval code is the referent, and the <i>bindings</i> appear in a new declarative environment, which is the eval code's <code>LexicalEnvironment</code>.)
Note that, like <code>evalInGlobal</code>, if the code passed to <code>evalInGlobalWithBindings</code> is not strict mode code, then any declarations it contains affect the referent global object, even as <i>code</i> is evaluated in an environment extended according to <i>bindings</i>. (In the terms used by the ECMAScript specification, the <code>VariableEnvironment</code> of the execution context for non-strict eval code is the referent, and the <i>bindings</i> appear in a new declarative environment, which is the eval code's <code>LexicalEnvironment</code>.)


<dt>asEnvironment()
<dt>asEnvironment()
Confirmed users
497

edits