<br><br><div class="gmail_quote">On Sat, Aug 27, 2011 at 11:13 PM, John-David Dalton <span dir="ltr"><<a href="mailto:john.david.dalton@gmail.com">john.david.dalton@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
So I have read the section (and the notes associated with it) over<br>
what a direct call to eval is:<br>
<a href="http://es5.github.com/#x15.1.2.1.1" target="_blank">http://es5.github.com/#x15.1.2.1.1</a><br>
<a href="http://dev.w3.org/html5/spec/Overview.html#script-s-global-object" target="_blank">http://dev.w3.org/html5/spec/Overview.html#script-s-global-object</a><br>
<br>
> A direct call to the eval function is one that is expressed as a CallExpression that meets the following two conditions:<br>
> The Reference that is the result of evaluating the MemberExpression in the CallExpression has an environment record as its base value and its reference name is "eval".<br>
> The result of calling the abstract operation GetValue with that Reference as the argument is the standard built-in function defined in 15.1.2.1.<br>
<br>
But I am still a little unsure if `window.eval()` is a direct call or not.<br>
I have heard `window.eval()` is an indirect call but wanted to make sure.<br>
<br>
I see it as<br>
<call expression><member expression> window.eval</member expression><br>
() </call expression><br>
<br>
Wouldn't the result of evaluating the MemberExpression `window.eval`<br>
have global's environment record as its base and a reference name of<br>
`eval`?<br></blockquote><div><br>No. It's the global object what is the base (more precisely, its DOM's proxy wrapper -- `window` or either the global itself), but not an environment record.<br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

Is `window.eval(..)` a direct call to eval?<br>
<br></blockquote><div><br>No, it's indirect.<br><br><a href="http://dmitrysoshnikov.com/ecmascript/es5-chapter-2-strict-mode/#indirect-eval-call">http://dmitrysoshnikov.com/ecmascript/es5-chapter-2-strict-mode/#indirect-eval-call</a><br>
<br>Dmitry.<br></div></div><br>