In my mind, it's acceptible if nested conversion doesn't happen: Rhino
doesn't support it, either. But one would expect that at least the
first-level of arguments would be coerced. By the way, this also works
as expected in other JVM dynamic languages: Jython, JRuby, Quercus,
LuaJ, Groovy and Clojure (though the latter both use Java arrays, so
coercion is easier: just to the array element type).
Would it be possible to support this intrinsically in mozilla_compat.js?
Or possibly add an optional flag for it in Nashorn?
This is a big deal. I have a very large application that works in Rhino
but won't work in Nashorn because of this.
On 10/08/2013 08:23 PM, Jim Laskey (Oracle) wrote:
Nashorn does not coerce JS arrays implicitly. There were too many ambiguous
cases to do a complete implementation (nested conversions.) In Nashorn you
have to;
myInstance.myMethod(Java.to(['a', 'b', 'c'], "java.lang.String[]"));
or;
var StringArray = Java.type("java.lang.String[]");
function args(array) {
return Java.to(array, StringArray);
}
myInstance.myMethod(args(['a', 'b', 'c']));
Cheers,
-- Jim