Javascript-C es la versión SpiderMonkey de Mozilla ,es decir un lenguaje cruzado, para la interpretación de objetos del mediante Gecko-JavaScript invocado en C++, lo que permite a la Programación orientada a objetos hasta el Modelo en Objetos para la representación de Documentos de una aplicación. Los archivos *.c, *.h y *.o se vinculan mediante unos #include por cada archivo, que para que funcione tiene que haber los archivos del jsapi Archivado el 24 de abril de 2006 en Wayback Machine.
Ejecución
El primer paso lo inicia la aplicación que manda una instrucción , que luego, el motor de Javascript la interpreta y hace las manipulaciones pertinentes y después devuelve un valor. Con la función JS_NewRuntime se pasa las instrucciones y devuelve el valor pertinente.
Versiones de respaldo del Javascript
Las ayudas de motor de JS (JavaScript) JS 1,0 JS directo 1,4. JS 1,3 y mayor se conforman con la especificación ECMAScript-262. En su más simple, el motor de JS analiza, compila, y ejecuta las escrituras que contienen declaraciones y funciones de JS. El motor maneja la asignación de memoria para los tipos de datos de JS y se opone necesario para ejecutar las escrituras, y limpia para arriba -- la basura recoge -- los tipos y los objetos de datos en la memoria esa él ningunas necesidades más largas.
Funcionamiento
Se solicita al motor de JS pudo ser una llamada a JS_NewObject para crear el objeto de encargo. Cuando el motor de JS crea el objeto, vuelve un indicador a su uso. Su uso puede entonces llamar el motor de JS otra vez para ejecutar las escrituras que utilizan el objeto. Por ejemplo, después de crear el objeto del usuario, su uso pudo pasar inmediatamente una escritura a JS_EvaluateScript para la compilación y ejecutarse inmediatamente. Que la escritura pudo conseguir y validar la información de un usuario, y entonces que establezca los derechos de acceso de usuario a otras características del uso.
Lo que hace es que la aplicación manda una rutina de JS al JSAPI ( interfaz de programación en JS) y devuelve un JS que la aplicación la interpreta tal y como C++
Este sistema de programación es muy usado por Macromedia Dreamweaver, Macromedia Flash, Macromedia Fireworks
Tipos de valores
- JSVAL_IS_OBJECT, el valor es un objeto.
- JSVAL_IS_NUMBER, el valor es un número, por ejemplo 459.
- JSVAL_IS_INT, el valor es un número entero, por ejemplo en 593,55 el entero es '593'.
- JSVAL_IS_DOUBLE, el valor que doble, en programación se entiende como la parte decimal, en el ejemplo anterior sería '55'.
- JSVAL_IS_STRING, el valor es una cadena y se escribe entre comillas ("string").
- JSVAL_IS_BOOLEAN es un valor booleano, es decir verdadero o falso.
Fragmentos de código
. . . #include <stdio.h> #include <stdlib.h> #include <string.h> /* include the JS engine API header */ #include "jsapi.h" . . . /* main function sets up global JS variables, including run time, * a context, and a global object, then initializes the JS run time, * and creates a context. */ int main(int argc, char **argv) { int c, i; /*set up global JS variables, including global and custom objects */ JSVersion version; JSRuntime *rt; JSContext *cx; JSObject *glob, *it; JSBool builtins; /* initialize the JS run time, and return result in rt */ rt = JS_NewRuntime(8L * 1024L * 1024L); /* if rt does not have a value, end the program here */ if (!rt) return 1; /* create a context and associate it with the JS run time */ cx = JS_NewContext(rt, 8192); /* if cx does not have a value, end the program here */ if (cx == NULL) return 1; /* create the global object here */ glob = JS_NewObject(cx, clasp, NULL, NULL); /* initialize the built-in JS objects and the global object */ builtins = JS_InitStandardClasses(cx, glob); . . . return 0; }
ejemplo aquí Archivado el 24 de abril de 2006 en Wayback Machine.
Véase también
- SpiderMonkey: Es para leer el Javascript C.
- C++: Para vincular JS en C.
- JavaScript: Artículo de Javascript.
- Artículo sobre Spidermonkey en la wiki en inglés
Enlaces externos
- Referencia JSAPI *
- Guía del embembedor de JS-C *
- Grupos
- Grupo: Grupo de Google sobre el motor-JS *
- Grupo: Mensaje sobre la ejecución de JS en la aplicación desde SpiderMonkey *
(*) en inglés