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字节码的编译器;
- 一个用于执行字节码的运行时。
在Nashorn项目中,JavaScript的执行将遵循ECMA-262 5.1标准,并会随着标准的发展,以适应最新的标准。该项目的源码库完全(100%)通过了ECMAScript test262的测试。
Nashorn项目最初来源于Oracle的内部项目,未来将会全部迁移到OpenJDK库。
创建Nashorn项目只是John Coomes的提议,投票日期为2012年12月6日,届时将决定是否创建。
详细信息:New Project: Nashorn