OpenJDK 發起 Nashorn 項目,在 Java 程序中嵌入 JavaScript
OpenJDK 的 HotSpot 團隊領導人 John Coomes 近日在郵件列表中提議:創建 Nashorn 項目,由 Jim Laskey 任項目領導人,HotSpot 團隊提供贊助支持。HotSpot 團隊由參與 HotSpot 虛擬機(即 JDK/OpenJDK 中附帶的 JVM)設計、實現和維護的開發者組成。
John 稱,根據 OpenJDK 的指導方針,準備啟動一個新的項目——在 Java 和原生 JVM 中實現一個輕量、高性能的 JavaScript 運行時。該項目旨在通過 JSR-223(Scripting for the Java Platform)使 Java 開發者能夠在 Java 應用程序中嵌入 JavaScript 腳本,并能夠開發獨立的 JavaScript 應用程序(使用 jrunscript 命令行工具來執行)。
與 Rhino 項目(使用 Java 編寫的 JavaScript 引擎,由 Netscape 在 1997 年啟動,由 Mozilla 維護)不同的是,Nashorn 項目旨在充分利用原生 JVM 中的新技術,并將利用 JSR-292(Supporting Dynamically Typed Languages on the Java Platform)中的 MethodHandles 和 InvokeDynamic API。
Nashorn 基于一個全新的代碼庫,其中包括了以下部分:
- 一個用于掃描 JavaScript 源代碼的解析器 API;
- 一個用于轉換 AST(抽象語法樹)和 JVM 字節碼的編譯器;
- 一個用于執行字節碼的運行時。 </ul>
在 Nashorn 項目中,JavaScript 的執行將遵循 ECMA-262 5.1 標準,并會隨著標準的發展,以適應最新的標準。該項目的源碼庫完全(100%)通過了 ECMAScript test262 的測試。
Nashorn 項目最初來源于 Oracle 的內部項目,未來將會全部遷移到 OpenJDK 庫。
創建 Nashorn 項目只是 John Coomes 的提議,投票日期為 2012 年 12 月 6 日,屆時將決定是否創建。
詳細信息:New Project: Nashorn