evaluación de JavaScript y evaluación de objetos

Tengo una parte de un marco de depuración que necesita poder ejecutar objetos de evaluación de tiempo.

Específicamente, si tengo una cadena como esta"{a: 1, b:2}" necesita evaluarlo en un objeto con miembrosa yb con esos valores Sin embargo, si lo hagoeval("{a: 1, b:2}") parece evaluarlo como una declaración y dice algo sobre una etiqueta ilegal.

Lo pirateé para que se evalúe así:

eval("var x=" + str + "; x;");

que parece funcionar, pero parece un truco horrible. ¿Alguna sugerencia sobre cómo hacer esto mejor?

(Por cierto, soy consciente de los peligros de la evaluación, pero esto es parte de un marco de depuración que no será visto por los usuarios reales).

Respuestas a la pregunta(1)

Su respuesta a la pregunta