Hi all.
I'm trying to implement an ES4-compliant version of eval, but I'm
having trouble understanding what the specified behavior is.
In ES4,
eval(x)
is distinct from all of
window.eval(x)
eval.call(myThisObject, x)
frames[0].eval(x)
in that the first form is an operator, and the last three forms are
function calls.
Right?
OK, for the eval operator, the eval function, the eval function called
with a specified 'this' object, and the eval function called on
another global object, respectively:
What scope chain should be used?
What variable object should be used?
What value should 'this' take on?
What gets called if window.eval has been overridden, as in (at global
scope):
eval = function() { return "overridden"; }
eval(x);
or
window.eval = function() { return "overridden"; }
window.eval(x);
What gets called if the "eval" identifier has been shadowed by a
variable in scope, as in:
with({ eval: function() { return "overridden"; } }) {
eval(x);
}
or
try {
throw function() { return "overridden"; };
} catch(eval) {
eval(x);
}
?
Thanks,
Geoff
_______________________________________________
Es4-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es4-discuss