Sí, el error no tiene sentido. Es más, a mi no se me produce ni en Firefox, ni en Ópera, ni en Explorer 7 ni 6, probado de esta manera:
Código PHP:
<script>
function evalua_mi_json(json){
mi_json=new Function('return '+json)();
alert(mi_json['nombre']);
}
miJSON=evalua_mi_json('{nombre:"angel",apellido:"gutierrez",edad:23}');
miJSON=evalua_mi_json('{nombre:"angel",apellido:"gutierrez",edad:23}');
miJSON=evalua_mi_json('{nombre:"angel",apellido:"gutierrez",edad:23}');
miJSON= new evalua_mi_json('{nombre:"angel",apellido:"gutierrez",edad:23}');
alert(miJSON.constructor)
miJSON= new evalua_mi_json('{nombre:"angel",apellido:"gutierrez",edad:23}');
miJSON= new evalua_mi_json('{nombre:"angel",apellido:"gutierrez",edad:23}');
</script>
Pero digo que no tiene sentido en este contexto el operador new, ya que los objetos Function son evaluados cada vez que son ejecutados, a diferencia de las funciones declaradas, que son compiladas:
http://developer.mozilla.org/es/docs...bjeto_Function