diff -r 4b43ab1f72e8 -r 8ed05565a481 rt/vm/src/test/java/org/apidesign/vm4brwsr/HtmlAnnotations.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/HtmlAnnotations.java Fri Jul 12 11:07:58 2013 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/HtmlAnnotations.java Thu Sep 12 12:26:23 2013 +0200 @@ -26,6 +26,9 @@ */ @JavaScriptResource("htmlannotations.js") public class HtmlAnnotations { + private Object callback; + + @JavaScriptBody(args = {}, body = "return 42;") public static int fourtyTwo() { return -1; @@ -59,6 +62,14 @@ return l; } + protected void onError(Object obj) throws Exception { + callback = obj; + } + + Object getError() { + return callback; + } + public static Object create() { return new HtmlAnnotations(); } @@ -66,4 +77,10 @@ "return impl.@org.apidesign.vm4brwsr.HtmlAnnotations::chooseLong(ZZJJ)(true, false, a, b);" ) public static native long first(Object impl, long a, long b); + + @JavaScriptBody(args = { "impl", "d" }, javacall = true, body = + "impl.@org.apidesign.vm4brwsr.HtmlAnnotations::onError(Ljava/lang/Object;)(d);" + + "return impl.@org.apidesign.vm4brwsr.HtmlAnnotations::getError()();" + ) + public static native Double onError(Object impl, Double d); }