Passing undefined to Nashorn Javascript in Scala / Java
Ich muss diese Funktion in Javascript von Scala / Java aus auswerten
function hello(a, b) {
return a+b;
}
Ich habe diesen Basiscode gemacht:
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))
}
Für den Parameter a übergebe ich eine Null und erhalte als Ergebnis eine 1.0. Wenn ich mein Javascript hacke (DAS MUSS ICH NICHT TUN) und ich mache es:
function hello(a, b) {
if (a === null) {
a = undefined;
}
return a+b;
}
Ich erhalte die erwartete NaN.
Die richtige Lösung würde eine undefinierte an die invokeFunction übergeben: Wie mache ich das?