1.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoader.java Mon Jun 17 16:14:55 2013 +0200
1.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoader.java Mon Jun 17 16:17:46 2013 +0200
1.3 @@ -70,7 +70,7 @@
1.4 ClassReader cr = new ClassReader(arr);
1.5 FindInClass tst = new FindInClass(null);
1.6 cr.accept(tst, 0);
1.7 - if (tst.found) {
1.8 + if (tst.found > 0) {
1.9 ClassWriter w = new ClassWriterEx(cr, ClassWriter.COMPUTE_MAXS | ClassWriter.COMPUTE_FRAMES);
1.10 FindInClass fic = new FindInClass(w);
1.11 cr.accept(fic, 0);
1.12 @@ -101,7 +101,7 @@
1.13
1.14 private static final class FindInClass extends ClassVisitor {
1.15 private String name;
1.16 - private boolean found;
1.17 + private int found;
1.18
1.19 public FindInClass(ClassVisitor cv) {
1.20 super(Opcodes.ASM4, cv);
1.21 @@ -138,7 +138,7 @@
1.22 @Override
1.23 public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
1.24 if ("Lorg/apidesign/bck2brwsr/core/JavaScriptBody;".equals(desc)) { // NOI18N
1.25 - found = true;
1.26 + found++;
1.27 return new FindInAnno();
1.28 }
1.29 return super.visitAnnotation(desc, visible);
1.30 @@ -165,7 +165,7 @@
1.31
1.32 super.visitFieldInsn(
1.33 Opcodes.GETSTATIC, FindInClass.this.name,
1.34 - "$$bck2brwsr$$" + name,
1.35 + "$$bck2brwsr$$" + name + "_" + found,
1.36 "Lorg/apidesign/bck2brwsr/launcher/fximpl/Fn;"
1.37 );
1.38 super.visitInsn(Opcodes.DUP);
1.39 @@ -290,7 +290,7 @@
1.40 }
1.41 FindInClass.this.visitField(
1.42 Opcodes.ACC_PRIVATE | Opcodes.ACC_STATIC,
1.43 - "$$bck2brwsr$$" + name,
1.44 + "$$bck2brwsr$$" + name + "_" + found,
1.45 "Lorg/apidesign/bck2brwsr/launcher/fximpl/Fn;",
1.46 null, null
1.47 );
2.1 --- a/launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoaderTest.java Mon Jun 17 16:14:55 2013 +0200
2.2 +++ b/launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsClassLoaderTest.java Mon Jun 17 16:17:46 2013 +0200
2.3 @@ -114,4 +114,13 @@
2.4 throw ex.getTargetException();
2.5 }
2.6 }
2.7 +
2.8 + @Test public void overloadedMethod() throws Throwable {
2.9 + Method plus = methodClass.getMethod("plus", int.class);
2.10 + try {
2.11 + assertEquals(plus.invoke(null, 10), 10);
2.12 + } catch (InvocationTargetException ex) {
2.13 + throw ex.getTargetException();
2.14 + }
2.15 + }
2.16 }
2.17 \ No newline at end of file
3.1 --- a/launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsMethods.java Mon Jun 17 16:14:55 2013 +0200
3.2 +++ b/launcher/fx/src/test/java/org/apidesign/bck2brwsr/launcher/fximpl/JsMethods.java Mon Jun 17 16:17:46 2013 +0200
3.3 @@ -31,4 +31,7 @@
3.4
3.5 @JavaScriptBody(args = {"x", "y" }, body = "return x + y;")
3.6 public static native int plus(int x, int y);
3.7 +
3.8 + @JavaScriptBody(args = {"x"}, body = "return x;")
3.9 + public static native int plus(int x);
3.10 }