1.1 --- a/emul/src/main/java/java/lang/reflect/Method.java Thu Jan 03 11:20:40 2013 +0100
1.2 +++ b/emul/src/main/java/java/lang/reflect/Method.java Thu Jan 03 11:29:22 2013 +0100
1.3 @@ -149,6 +149,7 @@
1.4 case 'Z': return Boolean.TYPE;
1.5 case 'S': return Short.TYPE;
1.6 case 's': return String.class;
1.7 + case 'o': return Object.class;
1.8 // case 'V': return Void.TYPE;
1.9 case 'L': try {
1.10 int up = sig.indexOf("_2");
2.1 --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Thu Jan 03 11:20:40 2013 +0100
2.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Thu Jan 03 11:29:22 2013 +0100
2.3 @@ -6,7 +6,7 @@
2.4 for(var i = 0; i < this.length; i++) this[i] = null;
2.5 return this;
2.6 };
2.7 -Array.prototype.clone__Ljava_lang_Object_2 = function() {
2.8 +Array.prototype.clone__o = function() {
2.9 var s = this.length;
2.10 var ret = new Array(s);
2.11 for (var i = 0; i < s; i++) {
3.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Jan 03 11:20:40 2013 +0100
3.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Thu Jan 03 11:29:22 2013 +0100
3.3 @@ -19,7 +19,6 @@
3.4
3.5 import java.io.IOException;
3.6 import java.io.InputStream;
3.7 -import org.apidesign.bck2brwsr.core.JavaScriptBody;
3.8 import org.apidesign.javap.AnnotationParser;
3.9 import org.apidesign.javap.ClassData;
3.10 import org.apidesign.javap.FieldData;
3.11 @@ -1272,16 +1271,20 @@
3.12 default: sb.append(ch); break;
3.13 }
3.14 }
3.15 - final String strng = "Ljava_lang_String_2";
3.16 - for(;;) {
3.17 + shortenSig(sb, "Ljava_lang_String_2", 's');
3.18 + shortenSig(sb, "Ljava_lang_Object_2", 'o');
3.19 + return sb.toString();
3.20 + }
3.21 +
3.22 + private static void shortenSig(StringBuilder sb, String strng, char r) {
3.23 + for (;;) {
3.24 int pos = sb.indexOf(strng);
3.25 if (pos == -1) {
3.26 break;
3.27 }
3.28 sb.delete(pos, pos + strng.length());
3.29 - sb.insert(pos, 's');
3.30 + sb.insert(pos, r);
3.31 }
3.32 - return sb.toString();
3.33 }
3.34
3.35 private static String findMethodName(MethodData m, StringBuilder cnt) {
4.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Thu Jan 03 11:20:40 2013 +0100
4.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Thu Jan 03 11:29:22 2013 +0100
4.3 @@ -122,7 +122,7 @@
4.4 + " if (fn) return fn(false);\n"
4.5 + " if (!args[0]) throw 'bck2brwsr initialized without loader function, cannot load ' + name;\n"
4.6 + " return vm.org_apidesign_vm4brwsr_VMLazy(false).\n"
4.7 - + " load___3Ljava_lang_Object_2Ljava_lang_Object_2s_3Ljava_lang_Object_2(loader, name, args);\n"
4.8 + + " load___3oos_3o(loader, name, args);\n"
4.9 + " }\n"
4.10 + " if (args[0]) vm.loadClass = loader.loadClass;\n"
4.11 + " return loader;\n"
5.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Thu Jan 03 11:20:40 2013 +0100
5.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/VMLazy.java Thu Jan 03 11:29:22 2013 +0100
5.3 @@ -122,7 +122,7 @@
5.4 + "\nif (vm[cls]) return false;"
5.5 + "\nvm[cls] = function() {"
5.6 + "\n var instance = arguments.length == 0 || arguments[0] === true;"
5.7 - + "\n return lazy.load__Ljava_lang_Object_2sZ(lazy, dot, instance);"
5.8 + + "\n return lazy.load__osZ(lazy, dot, instance);"
5.9 + "\n};"
5.10 + "\nreturn true;")
5.11 @Override
6.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java Thu Jan 03 11:20:40 2013 +0100
6.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ClassTest.java Thu Jan 03 11:29:22 2013 +0100
6.3 @@ -98,7 +98,7 @@
6.4 }
6.5 @Test public void jsInvokeMethod() throws Exception {
6.6 assertExec("Calls the name() method via reflection", Classes.class,
6.7 - "reflectiveMethodCall__Ljava_lang_Object_2Zs",
6.8 + "reflectiveMethodCall__oZs",
6.9 "java.io.IOException", true, "name"
6.10 );
6.11 }
6.12 @@ -107,7 +107,7 @@
6.13 }
6.14 @Test public void jsFindMethod() throws Exception {
6.15 assertExec("Calls the name() method via reflection", Classes.class,
6.16 - "reflectiveMethodCall__Ljava_lang_Object_2Zs",
6.17 + "reflectiveMethodCall__oZs",
6.18 "java.io.IOException", false, "name"
6.19 );
6.20 }
6.21 @@ -128,7 +128,7 @@
6.22 }
6.23 @Test public void jsAnnotatedMethod() throws Exception {
6.24 assertExec("Calls the name() method via reflection", Classes.class,
6.25 - "reflectiveMethodCall__Ljava_lang_Object_2Zs",
6.26 + "reflectiveMethodCall__oZs",
6.27 "java.io.IOException", false, null
6.28 );
6.29 }
7.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Thu Jan 03 11:20:40 2013 +0100
7.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Thu Jan 03 11:29:22 2013 +0100
7.3 @@ -135,7 +135,7 @@
7.4 @Test public void nullCheck() throws Exception {
7.5 assertExec(
7.6 "Returns nothing",
7.7 - StaticMethod.class, "none__Ljava_lang_Object_2II",
7.8 + StaticMethod.class, "none__oII",
7.9 null, 1, 3
7.10 );
7.11 }