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?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage