rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/vmtest/impl/HtmlAnnotations.java
2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
18 package org.apidesign.bck2brwsr.vmtest.impl;
20 import net.java.html.js.JavaScriptBody;
21 import net.java.html.js.JavaScriptResource;
25 * @author Jaroslav Tulach <jtulach@netbeans.org>
27 @JavaScriptResource("htmlannotations.js")
28 public class HtmlAnnotations {
29 private Object callback;
32 @JavaScriptBody(args = {}, body = "return 42;")
33 public static int fourtyTwo() {
37 @JavaScriptBody(args = { "x", "y" }, body = "return mul(x, y);")
38 public static native int useExternalMul(int x, int y);
40 public static int callback() {
41 final int[] arr = { 0 };
42 callback(new Runnable() {
51 @JavaScriptBody(args = { "r" }, javacall=true, body = "r.@java.lang.Runnable::run()()")
52 private static native void callback(Runnable r);
54 @JavaScriptBody(args = { }, javacall = true, body = "return @org.apidesign.bck2brwsr.vmtest.impl.HtmlAnnotations::callback()();")
55 public static native int staticCallback();
57 @JavaScriptBody(args = { }, wait4js = false, body = "/* do nothing */")
58 public static native void empty();
61 protected long chooseLong(boolean takeFirst, boolean takeSecond, long first, long second) {
63 if (takeFirst) l += first;
64 if (takeSecond) l += second;
68 protected void onError(Object obj) throws Exception {
76 public static Object create() {
77 return new HtmlAnnotations();
79 @JavaScriptBody(args = { "impl", "a", "b" }, javacall = true, body =
80 "return impl.@org.apidesign.bck2brwsr.vmtest.impl.HtmlAnnotations::chooseLong(ZZJJ)(true, false, a, b);"
82 public static native long first(Object impl, long a, long b);
84 @JavaScriptBody(args = { "impl", "d" }, javacall = true, body =
85 "impl.@org.apidesign.bck2brwsr.vmtest.impl.HtmlAnnotations::onError(Ljava/lang/Object;)(d);" +
86 "return impl.@org.apidesign.bck2brwsr.vmtest.impl.HtmlAnnotations::getError()();"
88 public static native Double onError(Object impl, Double d);