1.1 --- a/rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/HtmlAnnotations.java Thu Apr 28 06:21:04 2016 +0200
1.2 +++ b/rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/HtmlAnnotations.java Thu Apr 28 07:13:00 2016 +0200
1.3 @@ -99,4 +99,9 @@
1.4 + "return b ? 'yes' : 'no';\n"
1.5 )
1.6 public static native String yesNo(Callable<Boolean> call);
1.7 +
1.8 + @JavaScriptBody(args = { "arr", "val" }, body =
1.9 + "return arr[0] === val;"
1.10 + )
1.11 + public static native boolean compareArr(Object[] arr, Object val);
1.12 }
2.1 --- a/rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/HtmlAnnotationsTest.java Thu Apr 28 06:21:04 2016 +0200
2.2 +++ b/rt/emul/compacttest/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/HtmlAnnotationsTest.java Thu Apr 28 07:13:00 2016 +0200
2.3 @@ -106,6 +106,13 @@
2.4 });
2.5 assertEquals(no, "no", "FALSE is false");
2.6 }
2.7 +
2.8 + @BrwsrTest
2.9 + public void compareArrayOfDoubles() throws Exception {
2.10 + Double val = 2.2;
2.11 + boolean res = HtmlAnnotations.compareArr(new Object[] { val }, val);
2.12 + assertEquals(res, true, "Should be in the array");
2.13 + }
2.14
2.15 private static void assertEquals(double real, double exp) {
2.16 if (real - exp < 0.01) {
3.1 --- a/rt/emul/mini/src/main/java/java/lang/Class.java Thu Apr 28 06:21:04 2016 +0200
3.2 +++ b/rt/emul/mini/src/main/java/java/lang/Class.java Thu Apr 28 07:13:00 2016 +0200
3.3 @@ -1870,10 +1870,10 @@
3.4 )
3.5 static native Object clone(Object self) throws CloneNotSupportedException;
3.6
3.7 - @JavaScriptOnly(name = "toJS", value = "function(v) {\n"
3.8 + @JavaScriptOnly(name = "toJS", value = "function convToJS(v) {\n"
3.9 + " if (v === null) return null;\n"
3.10 + " if (Object.prototype.toString.call(v) === '[object Array]') {\n"
3.11 - + " return vm.org_apidesign_bck2brwsr_emul_lang_System(false).convArray__Ljava_lang_Object_2Ljava_lang_Object_2(v);\n"
3.12 + + " return vm.org_apidesign_bck2brwsr_emul_lang_System(false).convArray__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(v, convToJS);\n"
3.13 + " }\n"
3.14 + " if (v instanceof Date) return v;\n"
3.15 + " return v.valueOf();\n"
4.1 --- a/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Thu Apr 28 06:21:04 2016 +0200
4.2 +++ b/rt/emul/mini/src/main/java/org/apidesign/bck2brwsr/emul/lang/System.java Thu Apr 28 07:13:00 2016 +0200
4.3 @@ -84,15 +84,17 @@
4.4 public void close() throws IOException {
4.5 }
4.6 };
4.7 + @JavaScriptBody(args = { "fn", "p" }, body = "return fn(p);")
4.8 + private static native Object invoke(Object fn, Object p);
4.9
4.10 @Exported
4.11 - private static Object convArray(Object o) {
4.12 + private static Object convArray(Object o, Object convToJS) {
4.13 if (o instanceof Object[]) {
4.14 Object[] arr = (Object[]) o;
4.15 final int l = arr.length;
4.16 Object[] ret = new Object[l];
4.17 for (int i = 0; i < l; i++) {
4.18 - ret[i] = convArray(arr[i]);
4.19 + ret[i] = invoke(convToJS, arr[i]);
4.20 }
4.21 return ret;
4.22 }