1.1 --- a/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamic.java Sun Aug 10 07:12:30 2014 +0200
1.2 +++ b/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamic.java Sun Aug 10 10:37:23 2014 +0200
1.3 @@ -21,6 +21,7 @@
1.4 import java.lang.invoke.ConstantCallSite;
1.5 import java.lang.invoke.MethodHandles;
1.6 import java.lang.invoke.MethodType;
1.7 +import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.8
1.9 public class InvokeDynamic {
1.10
1.11 @@ -33,6 +34,9 @@
1.12 }
1.13
1.14 public static CallSite boot1(MethodHandles.Lookup lookup, String name, MethodType type) {
1.15 + assertReal("1st parameter lookup", lookup);
1.16 + assertReal("2nd parameter name", name);
1.17 + assertReal("3rd parameter type", type);
1.18 try {
1.19 return new ConstantCallSite(lookup.findVirtual(InvokeDynamic.class, "instance_sayHello", MethodType.methodType(String.class)));
1.20 } catch (NoSuchMethodException | IllegalAccessException e) {
1.21 @@ -40,6 +44,14 @@
1.22 }
1.23 }
1.24
1.25 + @JavaScriptBody(args = { "msg", "value" }, body =
1.26 + "if (!value) throw msg + ' value: ' + value;"
1.27 + )
1.28 + private static void assertReal(String msg, Object value) {
1.29 + assert value != null : msg;
1.30 + System.err.println(msg + " value: " + value);
1.31 + }
1.32 +
1.33 public String instance_sayHello() {
1.34 return "Hello from Dynamic!";
1.35 }