【问题标题】:Nashorn error loading javascript - version issue?Nashorn 错误加载 javascript - 版本问题?
【发布时间】:2014-06-04 01:43:27
【问题描述】:

在尝试将 env-js 库加载到 nashorn 时,我发现它在解析此语法时会卡住:

function () { ...
   get x(){ ... },
   get y() { ... },
   ...
}

这似乎在犀牛中解析得很好。我找不到任何对 nashorn 当前支持的 javascript 版本的引用。这是因为 nashorn 不支持这种语法吗?

【问题讨论】:

标签: java javascript rhino nashorn


【解决方案1】:

Hannes Wallnoefer 为 Nashorn 移植了 env.js。它包含在 Nashorn 功能请求的附件中。我没有尝试过,但它是相对较新的工作,大概仍然有效。

https://bugs.openjdk.java.net/browse/JDK-8006183

【讨论】:

  • 谢谢。我一定会看看这个。
  • 由于一个不相关的原因,这被证明不起作用——我们正在做 DOM 解析,envjs 依赖于 e4x。上面引用的端口也依赖于此,不幸的是 nashorn 中不存在 e4x,因此 DOM 解析失败。 (bugs.openjdk.java.net/browse/JDK-8006183)。不过谢谢你的建议。
  • 哦,好吧。这太糟糕了。我的第一个想法是“你不能只找到一个 e4x js 库并包含它吗”,但显然你会研究它,并且由于某种原因它要么不可能,要么不可取。祝你好运。如果您找到解决方案,请发布解决方案。可能有一天我需要这样做。
【解决方案2】:

get x() 和 set x() 只能在对象字面量中使用(为属性“x”定义 getter 和 setter)。我不确定上面的代码 sn-p(其中 get x() 和 set x() 在函数定义中定义)是否被 Rhino 接受。请您指出使用上述的envjs代码sn-p吗?

【讨论】:

    【解决方案3】:

    我在 master 分支上的 https://github.com/blipper/env-js 上将 env.js 初始移植到 Nashorn。这个版本取消了事件循环,因为我们主要使用 XHR 功能。由于内部原因,我们将很快在工作中对其进行清理,因此应该有更多的提交。

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 2019-11-27
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多