Aquí está el acuerdo, tenemos una gran biblioteca JS que queremos comprimir, pero YUI compressor no comprime completamente el código si encuentra una declaración "eval" , por temor a que rompa algo más. Eso está muy bien y todo, pero sabemos exactamente lo que está consiguiendo eval'd, por lo que no quiero que esté conservadora porque hay una sentencia eval en MooTools JSON.decodeCómo ejecutar "eval" sin escribir "eval" en JavaScript
Así que, básicamente, la pregunta es, ¿hay alguna forma alternativa (tal vez creativa) de escribir una expresión que devuelve la función eval? Probé unos pocos, pero no dice:
window['eval'](stuff);
window['e'+'val'](stuff);
// stuff runs in the global scope, we need local scope
this['eval'](stuff);
// this.eval is not a function
(new Function("with(this) { return " + '(' + stuff + ')' + "}"))()
// global scope again
¿Alguna idea? Thx
te estás jodiendo porque 'eval' no se considera una función normal. usted podría ser más astuto que el compresor YUI, pero se encontrará con navegadores que no lo harán o no le permitirán llamar a 'eval' con cualquier otro nombre. –