diff -r e568ae8ef9af -r aa2e9630b6d5 rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Tue Apr 26 07:59:10 2016 +0200 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Thu Apr 28 07:13:00 2016 +0200 @@ -84,15 +84,17 @@ public void close() throws IOException { } }; + @JavaScriptBody(args = { "fn", "p" }, body = "return fn(p);") + private static native Object invoke(Object fn, Object p); @Exported - private static Object convArray(Object o) { + private static Object convArray(Object o, Object convToJS) { if (o instanceof Object[]) { Object[] arr = (Object[]) o; final int l = arr.length; Object[] ret = new Object[l]; for (int i = 0; i < l; i++) { - ret[i] = convArray(arr[i]); + ret[i] = invoke(convToJS, arr[i]); } return ret; }