ECMAScript引擎列表

ECMAScript引擎是执行用某个版本的ECMAScript语言标准比如JavaScript写的源代码的程序。

JIT编译器引擎

下列是用于网页浏览器的新一代ECMAScript引擎,它们都实现了即时编译(JIT)或这个想法的变体。即时编译的性能利益使其更加适合于用JavaScript写的网页应用:

  • V8:用在Google Chrome、Node.js和V8.NET的JavaScript引擎。
  • SpiderMonkey:在Mozilla的Gecko应用包括Firefox中使用的JavaScript引擎。这个引擎目前包括IonMonkey编译器和OdinMonkey优化模块,以前曾包括TraceMonkey编译器(第一个javascript JIT)和JägerMonkey。
  • JavaScriptCore:最初从KJS派生出的JavaScript解释器和JIT。它用在WebKit计划和应用如Safari中。也叫作Nitro、SquirrelFish和SquirrelFish Extreme[1]
  • Chakra:用在Internet Explorer 11中的JScript引擎,它首次出现在Internet Explorer 9(32-bit)中[2]
  • ChakraCore:在Microsoft Edge中曾用过也叫做Chakra的JavaScript引擎,2015年12月,微软将其核心构件开放源代码并重命名为ChakraCore[3][4]
  • Carakan:Opera Software ASA开发的JavaScript引擎[5],包含在Opera网页浏览器10.50发行中[6],直到Opera 15(2013年发行)切换到V8[7][8]
  • Tamarin:用在Adobe Flash中的ActionScript和ECMAScript引擎。
  • Nashorn:用在Oracle Java开发工具包(JDK)自从版本8的JavaScript引擎[9]
  • iv:用C++写的ECMAScript词法分析器/语法解析器/解释器/VM/方法JIT[10]
  • CL-JavaScript:在能编译成机器语言的Common Lisp实现上可以编译JavaScript至机器语言[11]

解释器引擎

下列引擎使用运行时解释器,它们不编译成本地机器代码故而一般而言运行得更慢:

  • Rhino:来自Mozilla的JavaScript引擎之一,使用Java平台
  • Jsish英语Jsish[12]:一个JavaScript解释器,内建了SQLiteJSONWebSocketZIP虚拟文件系统支持。
  • Duktape[13]:一个小体量易于嵌入的Ecmascript E5/E5.1引擎。
  • MuJS[14]:一个轻量级的ECMAScript解释器库,设计用于嵌入其他软件中来为其扩展上脚本功能。最初为MuPDF开发[15]
  • njs[16]:为网页服务器脚本和最快的VM上下文创建而优化的轻量级的JavaScript解释器[17],用于nginx
  • Moddable SDK[18]:是为微控制器建造应用的开发工具和运行时软件的组合,Kinoma平台的后继者,目前是活跃计划并致力于支持更新近版本的ECMAScript。
  • Espruino英语Espruino[19]:特别用于微控制器的一个非常小体量的解释器,通过执行源代码(而非字节码),可以运行在小于8kB的RAM之下。
  • mjs[20]:设计用于资源有限的微控制器的JavaScript引擎,它实现了ECMAScript 6的一个严格子集。
  • JerryScript[21]三星为小于64KB RAM的微控制器提供的一个轻量级的JavaScript引擎。
  • V7[22]:嵌入式JavaScript引擎,实现了ECMAScript 5.1,声称是用C写的最小的JavaScript引擎,现已经让位给mjs[20]
  • Tiny-JS[23]:用C++写成的极小化的JavaScript解释器。
  • JS-Interpreter[24],用JavaScript实现的轻量级的JavaScript解释器,带有step-by-step执行。
  • GNU GuileGNU Scheme实现,自版本1.9起提供ECMAScript 3.1解释器[25]

不活跃项目

  • KJS:用于Konqueror的引擎,是KHTML的一个构件,是JavaScriptCore的前身。
  • QtScript:由Trolltech最初开发,现在属于Qt公司,它提供QObject与JavaScriptCore的集成。
  • JScript:用在Internet Explorer版本直到IE9(64-bit)的引擎,是Trident排版引擎的一个构件。
  • FutharkOpera网页浏览器版本9.50到10.10的ECMAScript引擎。
  • Linear B:专门用在Opera网页浏览器版本7.0到9.50的ECMAScript引擎。
  • InScript:用在iCab2和3的一个废弃了的专有库。
  • Kinomajs[26]:一个ECMAScript 6运行时环境和框架[27]。这是正确实现几乎所有ECMAScript 6标准的首批运行时之一,目前无维护。
  • YAJI[28]:基于Jean-Marc Lugin开始于1999年的FESI实现的一个ECMAScript引擎[29],使用Java平台,开发至支持ECMAScript 5.1[30]
  • Continuum[31]:支持ECMAScript 6规定的旧草案的自解释器[27]。很特别的,这个引擎是用ECMAScript 3实现的,这使得有可能在像IE6这样老的浏览器中运行ES6。
  • Narcissus[32]:用JavaScript实现的JavaScript(自循环解释器),意图在另一个JavaScript引擎中运行,唯有理论和教育意义。

参见

引用

  1. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-05-16). 
  2. ^ Hachamovitch, Dean, HTML5, Hardware Accelerated: First IE9 Platform Preview Available for Developers, 2010-03-16 [2019-05-23], (原始内容存档于2011-08-05) 
  3. ^ Microsoft Edge’s JavaScript engine to go open-source. Microsoft. [December 8, 2015]. (原始内容存档于2015-12-07). 
  4. ^ Microsoft open sources Edge web browser's JavaScript engine, plans port to Linux (页面存档备份,存于互联网档案馆) on zdnet.com by Steven J. Vaughan-Nichols (on January 13, 2016)
  5. ^ 存档副本. [2019-05-17]. (原始内容存档于2009-05-31). 
  6. ^ 存档副本. [2006-03-03]. (原始内容存档于2006-03-03). 
  7. ^ 存档副本. [2019-05-17]. (原始内容存档于2013-02-14). 
  8. ^ 存档副本. [2019-05-17]. (原始内容存档于2014-03-01). 
  9. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-07-25). 
  10. ^ Constellation/iv. [2015-11-15]. (原始内容存档于2016-02-08). 
  11. ^ CL-JavaScript. [2018-09-14]. (原始内容存档于2018-09-15). 
  12. ^ JavaScript Interpreter SHell (页面存档备份,存于互联网档案馆).
  13. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-04-17). 
  14. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-04-17). 
  15. ^ MuJS. [2014-09-22]. (原始内容存档于2014-09-26). 
  16. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-05-19). 
  17. ^ NGINX JavaScript in Your Web Server Configuration. [2018-10-30]. (原始内容存档于2019-03-04). 
  18. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-10-16). 
  19. ^ Espruino (页面存档备份,存于互联网档案馆).
  20. ^ 20.0 20.1 存档副本. [2019-05-17]. (原始内容存档于2019-04-17). 
  21. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-05-16). 
  22. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-04-17). 
  23. ^ 存档副本. [2019-05-17]. (原始内容存档于2018-06-11). 
  24. ^ 存档副本. [2019-05-17]. (原始内容存档于2019-02-22). 
  25. ^ The goal was to support ECMAScript version 3.1 (页面存档备份,存于互联网档案馆).
  26. ^ Kinomajs (页面存档备份,存于互联网档案馆).
  27. ^ 27.0 27.1 存档副本. [2019-05-17]. (原始内容存档于2019-05-05). 
  28. ^ YAJI: Yet Another JavaScript Interpreter. [2019-05-18]. (原始内容存档于2018-06-11). 
  29. ^ FESI. September 2003 [2019-05-17]. (原始内容存档于2012-09-06). 
  30. ^ ECMAScript Language Specification ECMA-262 5.1 edition (PDF). Ecma International. June 2011 [2012-01-31]. (原始内容 (PDF)存档于2015-04-12). 
  31. ^ Continuum - A JavaScript Virtual Machine Built in JavaScript. [2019-05-17]. (原始内容存档于2018-06-11). 
  32. ^ The Narcissus source code repository (页面存档备份,存于互联网档案馆).
语言
引擎列表
引擎比较
框架
客户端
  • Ample SDK英语Ample SDK
  • Chaplin.js英语Chaplin.js
  • Dojo
  • Echo
  • Extjs
  • Google網頁工具包
  • JQuery
  • Lively Kernel英语Lively Kernel
  • midori英语Midori JavaScript Framework
  • MochiKit英语MochiKit
  • MooTools英语MooTools
  • Prototype
  • Pyjs英语Pyjs
  • qooxdoo英语qooxdoo
  • Rialto英语Rialto Toolkit
  • Rico
  • script.aculo.us英语script.aculo.us
  • SmartClient英语SmartClient
  • SproutCore英语SproutCore
  • Spry英语Spry framework
  • Wakanda框架英语Wakanda (software)
  • 雅虎UI库
服务器
  • AppJet英语AppJet
  • Jaxer英语Jaxer#Aptana Jaxer
  • Node.js
  • Deno
  • WakandaDB英语Wakanda (software)
多種實作
  • Cappuccino英语Cappuccino (application development framework)
    • Objective-J英语Objective-J
  • PureMVC英语PureMVC
函式庫
  • Backbone.js
  • SWFObject英语SWFObject
  • SWFAddress英语SWFAddress
  • Lodash
人物
其他
  • DHTML
  • Ecma国际
  • JSDoc英语JSDoc
  • JSGI英语JSGI
  • JSHint
  • JSLint
  • JSON
  • JSSS英语JavaScript Style Sheets
  • Sputnik英语Sputnik (JavaScript conformance test)
  • SunSpider英语Browser speed test#SunSpider
  • 异步模块定义英语Asynchronous module definition
  • CommonJS
列表级条目列表
JavaScript库列表
Ajax框架英语list of Ajax frameworks#JavaScript
列表级条目比较
JavaScript框架英语Comparison of JavaScript frameworks
服务器端JavaScript英语comparison of server-side JavaScript solutions
代码分析
編譯器
概念
调试工具
  • Firebug
  • Komodo IDE英语Komodo IDE
  • Microsoft Script Debugger英语Microsoft Script Debugger
  • Microsoft Script Editor英语Microsoft Script Editor
  • Opera Dragonfly英语Opera Dragonfly
  • Venkman
  • Safari
文档生成器英语Documentation generator
  • JSDoc英语JSDoc
編輯器(比较英语Comparison of JavaScript-based source code editors
引擎
軟體框架
相關語言
相關技術
軟體套件管理系統
伺服器端
單元測試
  • Jasmine英语Jasmine (JavaScript framework)
  • Mocha英语Mocha (JavaScript framework)
  • QUnit英语QUnit
  • JavaScript单元测试框架列表英语List of unit testing frameworks#JavaScript
人物