1.1 --- a/rt/vm8/pom.xml Sun Aug 10 07:52:49 2014 +0200
1.2 +++ b/rt/vm8/pom.xml Sun Aug 10 08:07:11 2014 +0200
1.3 @@ -42,5 +42,11 @@
1.4 <scope>test</scope>
1.5 <type>jar</type>
1.6 </dependency>
1.7 + <dependency>
1.8 + <groupId>${project.groupId}</groupId>
1.9 + <artifactId>emul</artifactId>
1.10 + <version>${project.version}</version>
1.11 + <scope>test</scope>
1.12 + </dependency>
1.13 </dependencies>
1.14 </project>
1.15 \ No newline at end of file
2.1 --- a/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java Sun Aug 10 07:52:49 2014 +0200
2.2 +++ b/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java Sun Aug 10 08:07:11 2014 +0200
2.3 @@ -58,7 +58,7 @@
2.4 @Test public void simpleDynamicInJS() throws Exception {
2.5 code.assertExec(
2.6 "Invoke dynamic can return a value", InvokeDynamic.class,
2.7 - "dynamic__Ljava_lang_String_2",
2.8 + "dynamicSay__Ljava_lang_String_2",
2.9 "Hello from Dynamic!"
2.10 );
2.11 }
2.12 @@ -102,21 +102,27 @@
2.13 0);
2.14 is.close();
2.15 invokeDynamicBytes = writer.toByteArray();
2.16 + final boolean[] loaded = { false };
2.17 ClassLoader l = new ClassLoader() {
2.18 @Override
2.19 public Class<?> loadClass(String name) throws ClassNotFoundException {
2.20 if (name.equals(InvokeDynamic.class.getName())) {
2.21 + loaded[0] = true;
2.22 return defineClass(name, invokeDynamicBytes, 0, invokeDynamicBytes.length);
2.23 }
2.24 return super.loadClass(name);
2.25 }
2.26 };
2.27 invokeDynamicClass = l.loadClass(InvokeDynamic.class.getName());
2.28 -
2.29 + assertTrue(loaded[0], "InvokeDynamic class should be loaded!");
2.30 +
2.31 + final EmulResWithInvDyn emul = new EmulResWithInvDyn();
2.32 code = TestVM.compileClass(
2.33 - null, null, new EmulationResourcesWithException(),
2.34 + null, null, emul,
2.35 InvokeDynamic.class.getName().replace('.', '/')
2.36 );
2.37 +
2.38 + assertTrue(emul.loaded, "InvokeDynamic class should be processed!");
2.39 }
2.40
2.41
2.42 @@ -147,10 +153,13 @@
2.43 }
2.44 }
2.45
2.46 - private static class EmulationResourcesWithException implements Bck2Brwsr.Resources {
2.47 + private static class EmulResWithInvDyn implements Bck2Brwsr.Resources {
2.48 + boolean loaded;
2.49 +
2.50 @Override
2.51 public InputStream get(String name) throws IOException {
2.52 - if ("org/apidesign/vm4brwsr/InvokeDynamic.class".equals(name)) {
2.53 + if ("org/apidesign/bck2brwsr/vm8/InvokeDynamic.class".equals(name)) {
2.54 + loaded = true;
2.55 return new ByteArrayInputStream(invokeDynamicBytes);
2.56 }
2.57 if ("java/net/URI.class".equals(name)) {