Mark S. Miller wrote:
>   function foo(str1, str2) {
>     eval(str1);
>     eval(str2);
>   }
> 
> Since foo may be called as foo('var eval = f', ..), the second eval may
> refer to a local or to a global eval. These ambiguities defeat the goal of
> distinguishing direct from indirect calls. Though the above specific problem
> cannot occur if foo is strict, I propose that, for all code, one may not
> define a local variable named "eval".

Note that even with that restriction, it is possible to introduce
variables named 'eval' using 'with' (including in a strict function, if the
'with' construct was in a non-strict function).

Additional restrictions on eval may well be useful, but we need to make
sure that we're actually achieving the desired language properties.

-- 
David-Sarah Hopwood ⚥

_______________________________________________
Es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to