Restringir eval () a un ámbito estrecho
Tengo un archivo de JavaScript que lee otro archivo que puede contener fragmentos de JavaScript que deben evaluarse () - ed. Se supone que los fragmentos de script se ajustan a un subconjunto estricto de javascript que limita lo que pueden hacer y qué variables pueden cambiar, pero quiero saber si hay alguna manera de hacer cumplir esto evitando que la evaluación vea variables en el ámbito global . Algo como lo siguiente:
function safeEval( fragment )
{
var localVariable = g_Variable;
{
// do magic scoping here so that the eval fragment can see localVariable
// but not g_Variable or anything else outside function scope
eval( fragment );
}
}
El código real no necesita verse así: estoy abierto a todos y cada uno de los trucos extraños con cierres, etc. Pero sí quiero saber si esto es inclusoposibl.