1.1 --- a/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java Sun Aug 10 07:12:30 2014 +0200
1.2 +++ b/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java Sun Aug 10 08:07:11 2014 +0200
1.3 @@ -58,7 +58,7 @@
1.4 @Test public void simpleDynamicInJS() throws Exception {
1.5 code.assertExec(
1.6 "Invoke dynamic can return a value", InvokeDynamic.class,
1.7 - "dynamic__Ljava_lang_String_2",
1.8 + "dynamicSay__Ljava_lang_String_2",
1.9 "Hello from Dynamic!"
1.10 );
1.11 }
1.12 @@ -102,21 +102,27 @@
1.13 0);
1.14 is.close();
1.15 invokeDynamicBytes = writer.toByteArray();
1.16 + final boolean[] loaded = { false };
1.17 ClassLoader l = new ClassLoader() {
1.18 @Override
1.19 public Class<?> loadClass(String name) throws ClassNotFoundException {
1.20 if (name.equals(InvokeDynamic.class.getName())) {
1.21 + loaded[0] = true;
1.22 return defineClass(name, invokeDynamicBytes, 0, invokeDynamicBytes.length);
1.23 }
1.24 return super.loadClass(name);
1.25 }
1.26 };
1.27 invokeDynamicClass = l.loadClass(InvokeDynamic.class.getName());
1.28 -
1.29 + assertTrue(loaded[0], "InvokeDynamic class should be loaded!");
1.30 +
1.31 + final EmulResWithInvDyn emul = new EmulResWithInvDyn();
1.32 code = TestVM.compileClass(
1.33 - null, null, new EmulationResourcesWithException(),
1.34 + null, null, emul,
1.35 InvokeDynamic.class.getName().replace('.', '/')
1.36 );
1.37 +
1.38 + assertTrue(emul.loaded, "InvokeDynamic class should be processed!");
1.39 }
1.40
1.41
1.42 @@ -147,10 +153,13 @@
1.43 }
1.44 }
1.45
1.46 - private static class EmulationResourcesWithException implements Bck2Brwsr.Resources {
1.47 + private static class EmulResWithInvDyn implements Bck2Brwsr.Resources {
1.48 + boolean loaded;
1.49 +
1.50 @Override
1.51 public InputStream get(String name) throws IOException {
1.52 - if ("org/apidesign/vm4brwsr/InvokeDynamic.class".equals(name)) {
1.53 + if ("org/apidesign/bck2brwsr/vm8/InvokeDynamic.class".equals(name)) {
1.54 + loaded = true;
1.55 return new ByteArrayInputStream(invokeDynamicBytes);
1.56 }
1.57 if ("java/net/URI.class".equals(name)) {