investigación de los Avances tecnológicos del siglo XXI
Los dialectos ECMAScript y su implementación en los navegadores
1. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 1 de 9
Los dialectos ECMAScript y su implementación en
los navegadores
INTRODUCCIÓN
ECMAScript es al día de hoy uno de los principales y más importantes lenguaje de scipting que es
multiplataforma e independiente de cualquier tecnología o empresa, lo que le brinda una considera-
ble ventaja frente a otros lenguajes. Fue tomado como norma, por lo que se han creado otros len-
guajes a partir de ECMAScript con diferentes fines, el caso más difundido es en el cliente a través
de los navegadores web para crear contenido dinámico en las páginas web y dotarles la posibilidad
de interactuar con el usuario.
Este estudio brinda un panorama general sobre ECMAScript, sus diferentes dialectos y las
principales implementaciones que se han hecho para poder interpretar y ejecutar este tipo de lengua-
je del lado del cliente, es decir, en los navegadores web.
1. ECMAScript
ECMAScript es una “especificación de lenguaje de scripting”, es decir, un estándar que define las
características que debe cumplir un lenguaje de programación que sea capaz de interpretar y proce-
sar scripts1
, es decir, un lenguaje de programación interpretado, el cual se caracteriza por ser impe-
rativo, estructurado, dinámico, funcional y con orientación a objetos2
.
Para entender un poco más sobre ECMAScript es necesario retornar en la historia y resaltar los
hechos más relevantes. En aquel entonces, antes de que apareciera el primer lenguaje con estas ca-
racterísticas, la potencia de las computadoras era poca y la velocidad de conexión de Internet muy
limitada, de modo que cuando un cliente enviaba información (por ejemplo al rellenar un formula-
rio) al servidor, este último tenía que hacer validaciones para comprobar si los datos eran correctos,
sin embargo resultaba muy común que el usuario se equivocara, por lo cual se tenían que hacer
múltiples intentos previos enviando datos incorrectos al servidor antes de lograr un envío exitoso,
de manera tal que el servidor terminaba sobrecargándose y el usuario desesperado ante la lentitud
de la velocidad y tener que repetir el proceso. Esta fue una de las razones por las que se ve la nece-
sidad de implementar un lenguaje de programación en el cliente, el cual ayudara a disminuir la car-
ga de trabajo en el servidor haciendo procesamiento de información en el mismo cliente y con ello
disminuyendo también el tráfico de red.
1
Un script es un archivo almacenado en formato de texto plano que contiene un conjunto de órdenes para
realizar diversas tareas como combinar componentes, interactuar con el Sistema Operativo o con el usuario.
2
Para entender los diferentes paradigmas de programación consulte el libro “Introducción a la programación.
Teoría y práctica” de Jesús Javier Rodríguez en sus páginas 4-6, o la página web
http://es.wikipedia.org/wiki/Paradigma_de_programación
2. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 2 de 9
Así pues, el primer lenguaje en aparecer con las características de la especificación EC-
MAScript fue un lenguaje inventado por Brendan Eich para el navegador web Netscape Navigator
2.002 en diciembre de 1995 que originalmente fue llamado Mocha y que posteriormente sería de-
nominado LiveScript. Entonces este lenguaje comenzó a popularizarse y diversas empresas trataron
de imitar y copiar el lenguaje, como el caso de Microsoft, que en 1996 lanza el lenguaje JScript
para su navegador Internet Explorer 3.0, de pronto comenzó a darse una guerra de navegadores,
cada uno ejecutando su propia versión de lenguaje scripting. Fue por esta razón que Netscape
Communications decide aliarse con Sun Microsystem con la finalidad de desarrollar un nuevo y
mejor lenguaje, el cual llamaron JavaScript y que continuaron mejorando hasta que en noviembre
de 1996 proponen JavaScript 1.1 para que fuera adoptado como estándar. El organismo ECMA
(European Computer Manufacturers Association) decide crear un comité para estandarizarlo (to-
mando también como referencia JScript) y hacerlo independiente de toda plataforma y empresa,
hasta que en junio de 1997 publican el estándar ECMA-262 definiéndolo como ECMAScript. A su
vez, ECMA envía la especificación a ISO/IEC JTC 1 que bajo un procedimiento rápido de adopción
es aprobado en abril de 1998 bajo la denominación ISO/IEC 16262. Para adecuarse al estándar
internacional, ECMA vuelve a redactar las especificaciones y en junio del mismo año publica la
segunda versión de ECMAScript (Ecma International, 2011) (Wikipedia, 2014).
Es hasta diciembre de 1999 que se publica la tercera versión de la especificación, la cual fue es-
tandarizada internacionalmente como ISO/IEC 16262:2002. Sin llegar a realizar la publicación de
la cuarta versión, dan a conocer ECMA-262 5ta
edición que es inmediatamente revisada y estanda-
rizada internacionalmente como ISO/IEC 16262:2011, y para apegarse a ella, ECMA publica en
junio de 2011 ECMA-262 versión 5.1, que es más estricta pues se apega completamente a la terce-
ra versión de la norma internacional (Ecma International, 2011).
La versión 5.1 es la más actual, sin embargo ya se está trabajando en la sexta versión bajo el
nombre “Harmony” o “ES.next” 3
que está muy próxima a publicarse, de hecho, algunos navegado-
res web ya incorporan características que tendrá esta versión4
. Además de la sexta versión que está
próxima a publicarse, también se está comenzando a elaborar la séptima versión de ECMA-262 y
además se propone un ciclo de lanzamiento de dos años (Ecma International, 2014).
2. Los dialectos ECMAScript
Cada que una organización realiza una implementación del estándar ECMAScript se le conoce co-
mo “dialecto”. Cada empresa suele adaptar ECMAScript a sus necesidades y con los fines que me-
jor crea convenientes creando un dialecto nuevo, y aunque pueden parecerse bastante entre sí, tie-
nen diferencias sustanciales, ya que las características que no se apegan al estándar tendrán proble-
3
Se pueden consultar las nuevas características y su nivel de adopción de las próximas versiones de EC-
MAScript en la página http://kangax.github.io/compat-table/es5/
4
En el siguiente enlace se puede observar el nivel de adopción de ECMAScript 6 en Firefox)
https://developer.mozilla.org/en-
US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_6_support_in_Mozilla
3. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 3 de 9
mas de compatibilidad con los motores de ejecución de las aplicaciones que intenten interpretarlos,
por lo que una instrucción podría por ejemplo funcionar en un navegador web pero no en otro.
Entre las tres implementaciones principales que se conocen de ECMAScript se encuentran los
dialectos JavaScript, JScript y ActionScript. JavaScript es el dialecto más usado en las páginas web
el cual sirve para añadir interacción y funcionalidad a las mismas. JScript por su parte es usado
principalmente para la creación de páginas en ASP y que ha evolucionado a lo que hoy se conoce
como JScript .NET. Y en cuanto a ActionScript, es una implementación hecha específicamente para
Flash (Sikos, 2011, págs. 230-231).
Hay otras implementaciones para usos específicos por lo que no se apegan enteramente al es-
tándar ECMAScript o añaden más características, tal es el caso de ExtendScript que es un lenguaje
que creó Adobe Systems para usar con los productos de su Creative Suite (Adobe Systems), o tam-
bién DMDScript (conocido como DScript) que es una implementación especialmente adaptada para
ser usada en el lenguaje de programación “D” y en “C++” (Digital Mars, 2012).
De igual manera han surgido diferentes sub-implementaciones como es el caso de Ejscript que
es una implementación basada en JavaScript para ser usado en aplicaciones embebidas como por
ejemplo dispositivos móviles o incluso servidores web (EmbedThis).
Así mismo, se han creado otro tipo de lenguajes que se escriben en su propia sintaxis pero que
requieren compilarse, y al hacerlo se traducen a algún dialecto ECMAScript siendo el más usado
JavaScript. Existen gran variedad de implementaciones de este tipo, entre ellos se pueden mencio-
nar algunos como TypeScript, CoffeeScript, Dart, Brython, Objetive-J, o CRIScript, sin embargo
este tipo de lenguajes no son tema de estudio de este trabajo por lo que no serán abordados.
2.1. Breve descripción de JavaScript
El dialecto o lenguaje JavaScript (a veces abreviado como JS) es un lenguaje interpretado, muy
conocido por ser usado en navegadores web para visualizar páginas web, aunque también se ha
popularizado por su uso en otros entornos sin navegador como por ejemplo node.js o CoucchDB.
JavaScript es un lenguaje multi-paradigma, dinámico, basado en prototipos, con soporte de estilos
de programación funcional, orientado a objetos e imperativo (Hirsch, 2015).
Su sintaxis es similar a los lenguajes Java y C, por lo que la mayoría de la sintaxis funciona de
forma parecida, sin embargo difiere en que tiene objetos que se crean en tiempo de ejecución a los
cuales se les añaden métodos y propiedades, y una vez construido un objeto, éste puede usarse co-
mo modelo base o prototipo para crear objetos similares. Así pues, JavaScript puede funcionar tanto
como lenguaje procedimental como lenguaje orientado a objetos (Perrier, 2014).
El uso más común que se le da a JavaScript es incrustar instrucciones en páginas HTML para
ampliar los usos de las páginas web, por ejemplo, entre otras cosas lo que se puede hacer es:
Enviar y recibir datos del servidor para cargar el nuevo contenido sin recargar la página.
Lograr efectos de animaciones con elementos de la página.
Crear contenido interactivo guiado por el usuario, por ejemplo un juego.
4. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 4 de 9
Validar información antes de enviarla al servidor.
La última versión es JavaScript 1.8.5 la cual se apega completamente a ECMAScript versión 5
y ya que es mantenido por Mozilla es la que se encuentra disponible para todos sus proyectos
incluido Firefox desde su versión 4, que fue lanzada en 2011.
JavaScript Engines
Para interpretar y ejecutar JavaScript están disponibles diversos “motores JavaScript”, el primer
y más antiguo motor fue el creado por Brendan Eich llamado SpiderMonkey que cumple con EC-
MA-262 edición 5 y está desarrollado en C/C++ (del cual se han hecho versiones optimizadas tales
como TraceMonkey, jägerMonkey e IonMonkey), de este motor se hizo otra versión llamada Rhino
que fue desarrollado en Java pero que cumple hasta la tercera versión del estándar. También hay
otros motores como V8 de Google escrito en C++ y que puede ejecutarse standalone o embebido en
una aplicación. Por otro lado JavaScriptCore (también conocido como SquirrelFish o Nitro) es el
motor que usan algunos navegadores basados en WebKit; y Carakan que es el motor usado en Ope-
ra (Perrier, 2014).
2.2. Breve descripción de JScript
JScript es el dialecto del estándar ECMAScript creado por Microsoft para su navegador Internet
Explorer (IE) y que soporta active scripting (mejor conocido como ActiveX Scripting), es decir,
soporta el uso de tecnologías creadas para Windows, por lo que permite ser usado en las páginas
web ASP (Active Server Pages), también soporta una compilación condicional, con lo que se permi-
te ejecutar código selectivamente en bloques de comentarios. Estás características adicionales al
estándar es lo que lo hace incompatible en otros navegadores web (Wikipedia, 2014).
En el mismo Microsoft Developer Network se indica que JScript no es una versión simplificada
de otro lenguaje, pero sin embargo está limitado, y por ejemplo, no se pueden escribir aplicaciones
standalone, es decir que funcionen independientemente, tampoco tiene soporte para la lectura o
escritura de archivos, y los scripts no pueden ejecutarse sin la presencia de un intérprete específico
como lo son Internet Explorer, ASP y Windows Script Host (Microsoft).
La primera versión de JScript fue lanzada en 1996 para Internet Explorer 3.0 y la más reciente
del 2011 que corresponde a JScript 9.0, la cual se basaba en ECMAScript 5.0 y fue incluida en IE
9. Aisladamente5
Microsoft estuvo trabajando en un nuevo dialecto, interrumpiendo el desarrollo de
JScript 9.0 para dar continuidad al nuevo dialecto denominado JScript .NET, el cual también se le
conoce como JScript 10.0 (aunque por las características dicho nombre sería incorrecto).
La versión JScript .NET
JScript .NET se caracteriza por compilar para .NET Framework y Common Language Runtime.
Es un potente lenguaje pero que no tiene muchas de las características de JScript por lo que en mu-
chos casos no se le podría considerar como un lenguaje de scripting, inclusive, es un auténtico len-
5
Fue a partir del lanzamiento de Visual Studio 2002 que JScript 7.0 fue incorporado, dos años antes de que
pararan el desarrollo de JScript para pasar a JScript .NET.
5. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 5 de 9
guaje orientado a objetos que además se utiliza para aplicaciones que se ejecutan en el servidor
(Microsoft).
JScript Engines
Ya que JScript es mantenido únicamente por Microsoft, la cantidad de motores JScript es me-
nor. De hecho el único6
intérprete que se puede encontrar en las referencias es Chakra, desarrollado
para Internet Explorer 9 y posteriores versiones del navegador, desde su implementación Chakra
tenía la característica de ser bastante eficiente (en su versión de 32 bits), pues compila los scripts en
modo “just in time”, para ello usa un núcleo diferente en el que se ejecuta el navegador e inclusive,
si hay disponible una unidad gráfica de procesamiento (GPU) también la aprovecha, hoy en día aún
sigue haciendo aceleración por hardware (Wikipedia, 2013).
Existen otros intérpretes, como fue mencionado anteriormente, por ejemplo Windows Script
Host y ASP, sin embargo no están dirigidos a navegadores web, por lo que no serán considerados
en este documento.
3. Motores ECMAScript
Un motor ECMAScript es una aplicación que interpreta el código fuente y ejecuta el script acorde a
las instrucciones dadas. Los programas más comunes que incorporan estos motores son los navega-
dores web, los cuales implementan una API7
pública que permite crear objetos que se reflejan en el
DOM de una página, esa manipulación se hace por las instrucciones de los script a través del motor.
A continuación se hace un resumen de los principales intérpretes usados en navegadores web y pos-
teriormente se detallan los más relevantes (Wikipedia, 2015):
Proyectos Activos:
SpiderMonkey: Fue el primer motor, el cual fue desarrollado para Netscape Navigator y
que ahora es mantenido por Mozilla y es usado principalmente en Firefox.
V8: Desarrollado por Google y forma parte del navegador Chrome.
JavaScriptCore: Mejor conocido como “Nitro”, es desarrollador por Apple para Safari.
KJS: Desarrollado para el navegador web Konqueror de Linux bajo entorno KDE.
Chakra: Creado por Microsoft para su navegador Internet Explorer.
Proyectos Inactivos:
Tamarin: Desarrollado para la máquina virtual ActionScript usada en Flash, pero en 2006
Adobe donó el proyecto a Mozilla con el fin de mejorar las próximas generaciones de Ja-
vaScript y ActionScript.
Carakan: Creado por Opera Software para el navegador Opera, sin embargo en 2013 Ope-
ra comenzó a usar V8, dejando de lado el desarrollo de Carakan.
6
Algunos consideran a Trident como un intérprete JScript, sin embargo Trident es el motor de renderizado, es
decir de diseño, el cual se encarga de interpretar principalmente HTML, CSS y XML.
7
Del inglés Application Programming Interface, es un conjunto de funciones y procedimientos que son ofre-
cidos en una librería para que otra aplicación pueda utilizarlos.
6. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 6 de 9
Futhark: Creado por Opera Software y antecesor de Carakan. Formaba parte del motor de
diseño Presto que también fue desarrollado por Opera.
Narcissus: También creado por Brendan Eich (creador de SpiderMonkey), es un intérprete
meta circular, ya que es un motor JavaScript escrito en lenguaje JavaScript. Puede usarse en
Firefox con el plugin Zaphod.
Rhino: Es un motor escrito completamente en lenguaje Java, que se creó para Javagtor, una
herramienta de Netscape, sin embargo en 1998 se canceló el proyecto y entonces fue dona-
do a Mozilla quien ha continuado su desarrollo, aunque su última versión es del 2012.
3.1. SpiderMonkey
Es el JavaScript Engine creado por Brendan Eich para el navegador Netscape Navigator, que poste-
riormente pasaría a ser licenciado como open source y finalmente mantenido por Mozilla Founda-
tion. SpiderMonkey está escrito en lenguaje C e incluye un compilador, intérprete, descompilador,
recolector de basura y clases estandarizadas (Wikipedia, 2014).
Usa el compilador TraceMonkey que permite una aceleración por hardware, el cual terminó
siendo sustituido por JägerMonkey que ofrecí más mejoras, sin embargo, ante la imposibilidad de
realizar ciertas optimizaciones, éste también fue remplazado por IonMonkey
SpiderMonkey se apega a la versión 5.1 del estándar ECMAScript y a una gran cantidad de ca-
racterísticas del ECMA-357 para interpretar XML (su soporte se interrumpió en 2013). La última
versión de SpiderMonkey es la 31 aunque ya se está trabajando en la versión 38.
3.2. V8
Fue creado en Google por Lars Bak, el cual está escrito en lenguaje C++ para ser usado en el nave-
gador Chrome y el navegador web de Android 2.2, y puede funcionar tanto standalone como inte-
grado en una aplicación (Wikipedia, 2014).
Este motor compila JavaScript a código máquina nativo, además tiene un recolector de basura
que es incremental, un ensamblador que está basado en el ensamblador Strongtalk, al liberar su
compilador Crankshaft logran mejoras de velocidad.
V8 se apega a la versión 5.0 de ECMAScript y la última versión de V8 es la 3.29.59 de sep-
tiembre de 2014.
3.3. KJS
Es un motor escrito en lenguaje C++ que pertenece al proyecto KDE, siendo destinado para el na-
vegador web Konqueror, del cual se basó JavaScriptCore para ser usado en Apple para el navega-
dor Safari. La última versión de KJS es la 5.6.0 publicada en enero de 2015 (Wikipedia, 2014).
3.4. WebKit
No es en sí mismo un motor, sino que es una completa plataforma que funciona como base para los
navegadores Safari, Chrome, Opera, Epiphany, Maxthon, Midori, QupZilla, y otros más. Está basa-
do en Konqueror del proyecto de KDE y es mantenido principalmente por Apple, Google y RIM.
7. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 7 de 9
Webkit incluye algunos frameworks entre los que se encontraban JavaScriptCore, el intérprete
para JavaScript que está basado en KJS, pero que sin embargo desde 2008 el intérprete paso a ser
SquirrelFish (abreviado como SFX o conocido como Nitro) que compila JavaScript a código má-
quina y que por lo tanto acelerando la velocidad (Wikipedia, 2014).
El nacimiento de WebKit se debe a que Apple indicó que los motores de renderizado KHTML
y de JavaScript KJS permitían un desarrollo más fácil que otras tecnologías al tener un código pe-
queño, muy limpio y compatible con las normas; así que decidieron portarlos a MacOS X usando
para ello WebCore y JavaScriptCore.
En 2010 se anunció WebKit2, rediseñado desde cero para generar un modelo de procesos divi-
didos, donde el contenido de la web (JavaScript, HTML, diseño, etc.) se ejecuta cada uno en un
proceso separado.
En 2013 Google dejó WebKit para hacer una adaptación de éste al que llamó Blink y que man-
tiene junto con Opera, Blink ha resultado en motores muy veloces tanto para diseño como para in-
terpretar JavaScript.
4. ECMAScript en los navegadores web
A continuación se muestra a manera de resumen las implementaciones que han tenido los principa-
les navegadores web en sus motores para interpretar algún dialecto ECMAScript, el resumen es de
manera general sin especificar plataformas o características más técnicas8
:
Tabla 1. Comparativa de uso de Motores ECMAScript en los principales navegadores web
Navegador web Versión / Fecha Motor para ECMAScript
Mozilla Firefox 34.0 / Dic-2014 SpiderMonkey
Google Chrome 39.0 / Dic-2014 V8
Opera 26.0 / Dic-2014 V8
Safari 08.0 / Oct-2014 Nitro (WebKit)
Internet Explorer 11.0 / Sep-2014 Chakra
Konqueror 4.14 / Oct-2014 Nitro (WebKit)
Maxthon 04.4 / Dic-2014 Nitro (WebKit)
Fuente: Recopilación propia
También en la siguiente tabla se muestra el nivel de cumplimiento que tienen los diferentes na-
vegadores web (solo se consideran las más recientes versiones) para las el actual estándar EC-
MAScript, así como las futuras versiones9
:
8
Para conocer la lista de navegadores web existentes puede consultar los siguientes enlaces tanto para las
versiones de escritorio como móviles:
https://en.wikipedia.org/wiki/Web_browser_history
https://en.wikipedia.org/wiki/Mobile_browser
9
Basado en los resultados de la tabla de compatibilidad de http://kangax.github.io/compat-table/es5/ el día 9
de enero de 2015.
8. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 8 de 9
Tabla 2. Nivel de apego a ECMAScript de los últimos y principales navegadores web
FF21+ CH23+ IE10+ SF6+ OP15+ iOS8 KQ4.13
ECMAScript 5 100% 100% 100% 100% 100% 100% 92%
FF36 CH40 IE11 SF8 OP27 iOS8 KQ4.14
ECMAScript 6 67% 35% 21% 22% 35% 22% 13%
FF35 CH37 IE11 SF8 OP27 iOS8 KQ4.13
ECMAScript 7 63% 13% 0% 0% ND 0% 0%
FF = Firefox
CH = Chrome
IE = Internet Explorer
SF = Safari
OP = Opera
iOS = iOS
KQ = Konqueror
+ = Y superiores
FF35 Firefox versión 35
FF21+ Firefox versión 25 y superiores
Fuente: Recopilación propia a partir de la tabla de Kangax (Kangax)
Como se puede observar, al día de hoy los últimos navegadores se apegan al estándar EC-
MA-262, sin embargo, para las futuras versiones, se puede notar que Mozilla es el que más trabaja
en la adopción del estándar, seguido por Google.
ACID3 es la tercera versión de la prueba de estándares para navegadores web, la cual se in-
cluyó un grupo de pruebas para ECMAScript, el Bucket 6. Aunque los resultados tienen tiempo
pues fue lanzada en 2008, pueden servir de referencia para analizar el nivel de compromiso de los
navegadores. La siguiente tabla muestra los resultados de las pruebas ACID3 en el 2008, ya que
actualmente todos los navegadores modernos aprueban el test y aún no han lanzado ACID4.
Tabla 3.Resultados de ACID3 en 2008
Chrome Firefox Internet Explorer Opera
78/100 71/100 14/100 83/100
Fuente: http://www.cnet.com/news/chrome-tops-ie-firefox-in-acid3-test/
5. Conclusión
De acuerdo a las estadísticas globales de StatCounter, Chrome es el navegador con mayor adopción,
seguido de Internet Explorer y Firefox, por lo cual los usuarios de la web no han tenido tan mala
elección, por las siguientes razones:
Chrome es el segundo mejor calificado en compatibilidad con ECMAScript
Chrome usa el motor V8, que es bastante eficiente y compila JavaScript, el lenguaje más
estandarizado que existe de ECMAScript.
Ahora bien, la principal razón por la que se podría elegir uno y otro navegador sería:
Firefox una mayor compatibilidad con ECMAScript.
Opera es una alternativa a Chrome, ya que los desarrollos van de la mano.
Internet Explorer es el más rápido en procesar ECMAScript10
.
En cuanto a Safari, simplemente no es la mejor opción que existe.
10
Leer comparativa en http://www.muycomputer.com/2012/04/02/benchmark-navegadores-web-chrome-18-
frente-al-resto
9. Por: Héctor Garduño Real
Máster en Dirección e Ingeniería de Sitios Web
Computación en el Cliente Web
10 de enero de 2015 Página 9 de 9
Referencias Bibliográficas
Adobe Systems. (n.d.). Scripting Developer Center | Adobe Developer Connection. Retrieved Enero 9, 2015,
from Adobe Developer Connection: http://www.adobe.com/devnet/scripting.html
Digital Mars. (2012, Octubre 8). ECMAScript - Digital Mars. Retrieved from Digital Mars :
http://www.digitalmars.com/dscript/
Ecma International. (2011, Junio). ECMAScript Language Specification - ECMA-262 Edition 5.1. Retrieved
Enero 09, 2015, from Ecma International: http://www.ecma-international.org/ecma-262/5.1/
Ecma International. (2014, Diciembre 24). harmony:specification_drafts [ES Wiki]. Retrieved Enero 9, 2015,
from Wiki - Ecma International:
http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts
EmbedThis. (n.d.). Ejscript Javascript Language. Retrieved Enero 9, 2015, from EmbedThis:
https://embedthis.com/ejscript/
Hirsch, L. (2015, Enero 3). JavaScript | MDN. Retrieved Enero 9, 2015, from Mozilla Developer Network:
https://developer.mozilla.org/es/docs/Web/JavaScript
Kangax. (n.d.). Kangax projects. Retrieved Enero 9, 2015, from Stuff by Kangax: http://kangax.github.io/
LibrosWeb.es. (n.d.). 1.2. Breve historia (Introducción a JavaScript). Retrieved Enero 9, 2015, from
LibrosWeb.es: http://librosweb.es/javascript/capitulo_1/breve_historia.html
Microsoft. (n.d.). JScript. Retrieved Enero 9, 2015, from MSDN: http://msdn.microsoft.com/es-
es/library/72bd815a.aspx
Microsoft. (n.d.). JScript (ECMAScript3). Retrieved Enero 9, 2015, from MSDN:
http://msdn.microsoft.com/en-us/library/hbxc2t98%28VS.85%29.aspx
Perrier, J.-Y. (2014, Julio 3). Acerca de JavaScript - JavaScript | MDN. Retrieved Enero 9, 2015, from
Mozilla Developer Network:
https://developer.mozilla.org/es/docs/Web/JavaScript/Acerca_de_JavaScript
Sikos, L. (2011). Web Standards: Mastering HTML5, CSS3, and XML. Apress.
Wikipedia. (2013, Marzo 12). Chakra (intérprete de JScript) - Wikipedia, la enciclopedia libre. Retrieved
Enero 9, 2015, from Wikipedia, la enciclopedia libre:
https://es.wikipedia.org/wiki/Chakra_%28int%C3%A9rprete_de_JScript%29
Wikipedia. (2014, Diciembre 6). JavaScript - Wikipedia, la enciclopedia libre. Retrieved Enero 9, 2015, from
Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/JavaScrip
Wikipedia. (2014, Diciembre 31). JScript - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from
Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/JScript
Wikipedia. (2014, Julio 10). KJS (software) - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015, from
Wikipedia, the free encyclopedia: https://es.wikipedia.org/wiki/KJS
Wikipedia. (2014, Noviembre 19). Script - Wikipedia, la enciclopedia libre. Retrieved Enero 09, 2015, from
Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/Script
Wikipedia. (2014, Octubre 24). SpiderMonkey (software) - Wikipedia, the free encyclopedia. Retrieved Enero
9, 2015, from Wikipedia, the free encyclopedia:
https://en.wikipedia.org/wiki/SpiderMonkey_%28software%29
Wikipedia. (2014, Septiembre 14). V8 (JavaScript engine) - Wikipedia, the free encyclopedia. Retrieved
Enero 9, 2015, from Wikipedia, the free encyclopedia:
https://en.wikipedia.org/wiki/V8_%28JavaScript_engine%29
Wikipedia. (2014, Agosto 28). WebKit - Wikipedia, la enciclopedia libre. Retrieved Enero 9, 2015, from
Wikipedia, la enciclopedia libre: https://es.wikipedia.org/wiki/WebKit
Wikipedia. (2015, Enero 9). JavaScript engine - Wikipedia, the free encyclopedia. Retrieved Enero 9, 2015,
from Wikipedia, the free encyclopedia: https://en.wikipedia.org/wiki/JavaScript_engine