1. Inicio
  2. Documentos
  3. Contribuir
  4. How NectarJS works?

How NectarJS works?

NetcarJS is an EcmaScript/JavaScript native compiler. It takes JS code en compile into a binary file for a specific targeted platform.

Pasos para la compilación nativa

These are the compilation steps:

  • NectarJS verifica la conexión JS con JSLint
  • NectarJS verifica las formulas a incluir
  • NectarJS convierte JS a C++
  • NectarJS adiciona un modulo estandar para el entorno de compilación seleccionado
  • NectarJS utiliza C++ compilando (G++, Clang++, …) para compilar el código en un nativo binario

How NectarJS works under the hood?

NectarJS has a central c++ file, njs.h that describes the behavior of a variable in NectarJS.

For example: this is a piece of valid C++ code with njs.h included:

var a = 0;
a = "Hello world";

A var in the NectarJS C++ environment is described like this:

  • Un tipo, con una lista enumerada
  • Un puntero, ese punto de ubicación del valor de la variable
  • – Differents constructors, for each var types
  • Diferentes copias de constructos diferentes para cada tipo de var
  • – A generic destructor, that, depending of the context, delete the value and free the ptr

El valor de la variable es guardado en un registro. Puedes encontrar más información sobre la memoria del registro en la parte de gestión.

When a var is created, a pointer is generated and a value is stored at the location of the pointer in the register. Like a JS object depending of the nature of the var this ptr will be used as reference (an object for example), or a copy of the var with a new ptr will be use as a copy (string for example).

Cuando un nuevo valor es asignado a una var existente, el puntero is re utilizado para guardar el nuevo valor.

NectarJS soporta estos tipos de valores:

  • – undefined
  • – number
  • – bool
  • – object
  • – function
  • – string
  • – NaN
  • – infinity

¿Te resultó útil este artículo? Si No

¿Cómo podemos ayudarle?