我们公司的前任开发人员已经实现了他们自己的javascript引擎,我们希望用Nashorn替换它。
他已经实施了ECMA标准的一个子集,所以理论上它应该是一个相当直接的操作,除非他稍微扩展了语言!
最好通过他的语言可以支持的语法示例来解释。
var today = now(); //create a proprietary object that represents time
var tomorrow = today + 1d; //Add a day. NOTE 1h is NOT a constant
可以看出他有
等效的JavaScript代码将是
var today = now(); //create a proprietary object that represents time
var tomorrow = today.plus( new Duration( '1d')); //Add a day.
我想知道Nashorn是否有任何“钩子”,以便我们可以使用这些“功能”扩展语言,还是我们需要重写所有脚本?
由于
理查德
答案 0 :(得分:0)
不,nashorn没有任何钩子来扩展实现的语言。我想你需要对脚本进行预处理 - 比如解析器并替换这样的" +"用" .plus"在将脚本提交给nashorn引擎之前调用等等。