Passagem indefinida para Nashorn Javascript em Scala / Java
Preciso avaliar essa função em Javascript do Scala / Java
function hello(a, b) {
return a+b;
}
Eu fiz este código básico:
val factory = new ScriptEngineManager(null)
val engine = factory.getEngineByName("JavaScript")
val body =
"""
|function hello(a, b) {
| return a+b;
|}
""".stripMargin
engine match {
case engine: Invocable =>
engine.eval(body)
println(engine.invokeFunction("hello", null, 1: java.lang.Double))
}
Para o parâmetro a, estou passando um nulo e recebo um 1,0 como resultado. Se eu hackear meu javascript (NÃO FAÇO ISSO) e o fizer:
function hello(a, b) {
if (a === null) {
a = undefined;
}
return a+b;
}
Eu recebo o NaN esperado.
A solução correta seria passar um indefinido para o invokeFunction: como faço isso?