Nashorn 中的 ECMA 6 支持

问题描述 投票:0回答:3

我刚刚尝试了Nashorn,似乎不支持

Array.prototype.fill
。 这令人惊讶吗? Nashorn 的预期支持是否有时间表? 目前在 Nashorn 中获取 5 个 0 数组的最佳方法是
Array.apply(null, Array(5)).map(x=>0)

javascript nashorn
3个回答
4
投票

这个文档让我相信即使在 Java 8 中你也可以通过使用

-Dnashorn.args=--language=es6
:

来获得 ES6

https://developer.oracle.com/databases/nashorn-javascript-part2

事实上,我设法从 Clojure 获得了一些基本的 ES6 支持(将

:jvm-opts ["-Dnashorn.args=--language=es6"]
添加到
project.clj
),尽管我仍然无法加载我想要的库,所以可能确实还缺少一些部分。


3
投票

Java9 似乎部分支持 ES6,稍后还会提供更多支持: https://www.oracle.com/corporate/features/nashorn-javascript-engine-jdk9.html

另请参阅: http://openjdk.java.net/jeps/292


0
投票

如前所述,一些功能已经实现。 我在任何答案中都没有找到如何在运行时激活它。

目前,使用独立版本(Nashorn 在 JRE 15 中被删除),您可以通过以下方式启用 ES6(部分):

System.setProperty("nashorn.args","--language=es6");

使用前请确保属性已设置。我建议将下面的代码添加到包含 main 或另一个初始化点的类中。

static {
    System.setProperty("nashorn.args","--language=es6");
}

获取有关独立版本的更多信息:https://github.com/openjdk/nashorn

© www.soinside.com 2019 - 2024. All rights reserved.