rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamic.java
branchjdk8
changeset 1658 3e5087bd13c1
parent 1654 da24a2411ee7
child 1659 d279ddd06652
     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      }