Cuando Google lanzó su navegador Chrome, la compañía incluyó una implementación rápida de JavaScript llamada V8, el lenguaje de script del lado del cliente incluido en todos los navegadores. A los primeros usuarios de JavaScript en la era de Netscape 4.1 no les gustaba el lenguaje porque no había herramientas para la depuración y cada navegador tenía implementaciones diferentes, y las diferentes versiones de los navegadores Netscape también diferían. No fue agradable escribir código entre navegadores y probarlo en muchos navegadores diferentes.
Desde entonces, Google Maps y Gmail aparecieron utilizando todas las tecnologías Ajax (Asynchronous JavaScript and XML), y JavaScript había tenido un gran regreso. Ahora hay herramientas decentes para ello. El V8 de Google, que está escrito en C ++, compila y ejecuta el código fuente de JavaScript, maneja la asignación de memoria para los objetos y la basura recolecta los objetos que ya no necesita. V8 es mucho más rápido que JavaScript en otros navegadores porque se compila en código de máquina nativo, no en código de bytes que ha sido interpretado.
JavaScript V8V8 no solo se usa con Chrome. Si su aplicación C ++ requiere secuencias de comandos para que los usuarios puedan escribir código que se ejecuta en tiempo de ejecución, entonces puede incrustar V8 en su aplicación. V8 es un motor JavaScript de código abierto de alto rendimiento con licencia bajo la licencia liberal BSD. Google incluso ha proporcionado una guía de inserción.
Aquí hay un ejemplo simple que ofrece Google: el clásico Hello World en JavaScript. Está destinado a programadores de C ++ que desean incrustar V8 en una aplicación de C ++
int main (int argc, char * argv [])
// Crea una cadena que contenga el código fuente de JavaScript.
String source = String :: New ("'Hola' + ', Mundo'");
// Compilarlo.
Script script = Script :: Compilar (fuente);
// Ejecutarlo.
Valor resultado = script-> Run ();
// Convertir el resultado a una cadena ASCII y mostrarlo.
Cadena :: AsciiValue ascii (resultado);
printf ("% s \ n", * ascii);
devuelve 0;
V8 se ejecuta como un programa independiente o puede integrarse en cualquier aplicación escrita en C++.