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.

Respuestas a la pregunta(8)

Su respuesta a la pregunta