Strict mode eval

Allen Wirfs-Brock allen at wirfs-brock.com
Tue May 10 19:38:20 PDT 2011


On May 10, 2011, at 10:50 AM, Oliver Hunt wrote:

> I can't recall off the top of my head whether 
> function f(eval) { eval(...) }
> will result in behaviour that's considered to be the operator or function form (i'can't recall whether th semantics define the env. record the resolved eval must be boun
> 
> --Oliver

This s a direct eval, if f is declared in a non-strict context and the original built-in eval function is passed as the argument to f.  Put simply, to be a "direct eval" the invocation of the function must use the identifier name "eval" and the value the identifier must be the built-in eval  function.  However, the binding for "eval" doesn't need to come from the global environment record.

If f is defined in a strict context,  the use of eval as a formal parameter name is an early error.

Allen




More information about the es-discuss mailing list