Hello nashorn team,

I have a question regarding how to invoke function that deeply nested inside 
object.
Here is example:

@Test
public void useCase_7() throws ScriptException, LoadError, 
NoSuchMethodException {
    engine.eval("x = {a: {b: {c: function(a, b) { return a + b } } } }");
    Invocable inv = (Invocable) engine;
    Assert.assertEquals("function reference chain", 
inv.invokeFunction("x.a.b.c", 2, 3), 5.0);
}

And I'm getting java.lang.NoSuchMethodException: No such function x.a.b.c

Invoke method doesn't seem to work as well.

@Test
public void useCase_8() throws ScriptException, LoadError, 
NoSuchMethodException {
    engine.eval("x = {a: {b: {c: function(a, b) { return a + b } } } }");
    Invocable inv = (Invocable) engine;
    Object x = engine.get("x");
    Assert.assertEquals("function reference chain", inv.invokeMethod(x, 
"a.b.c", 2, 3), 5.0);
}

What is correct way to do that?
Please, advice
Thanks          

-- 
With Best Regards, 
Vik Gamov

Reply via email to