Seek the class in VM as well as among exported symbols to allow calculator demo to start in full obfuscation mode
1.1 --- a/javaquery/demo-calculator/pom.xml Thu May 22 10:48:09 2014 +0200
1.2 +++ b/javaquery/demo-calculator/pom.xml Thu May 22 12:19:52 2014 +0200
1.3 @@ -12,7 +12,7 @@
1.4
1.5 <properties>
1.6 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1.7 - <bck2brwsr.obfuscationlevel>MINIMAL</bck2brwsr.obfuscationlevel>
1.8 + <bck2brwsr.obfuscationlevel>FULL</bck2brwsr.obfuscationlevel>
1.9 </properties>
1.10 <build>
1.11 <plugins>
2.1 --- a/rt/emul/mini/src/main/java/java/lang/Class.java Thu May 22 10:48:09 2014 +0200
2.2 +++ b/rt/emul/mini/src/main/java/java/lang/Class.java Thu May 22 12:19:52 2014 +0200
2.3 @@ -238,14 +238,18 @@
2.4 }
2.5
2.6 @JavaScriptBody(args = {"n", "c" }, body =
2.7 - "if (!vm[c]) {\n"
2.8 - + " if (vm.loadClass) {\n"
2.9 - + " vm.loadClass(n);\n"
2.10 + "var m = vm[c];\n"
2.11 + + "if (!m) {\n"
2.12 + + " var l = vm.loadClass ? vm.loadClass : exports ? exports.loadClass : null;\n"
2.13 + + " if (l) {\n"
2.14 + + " l(n);\n"
2.15 + " }\n"
2.16 - + " if (!vm[c]) return null;\n"
2.17 + + " if (vm[c]) m = vm[c];\n"
2.18 + + " else if (exports[c]) m = exports[c];\n"
2.19 + "}\n"
2.20 - + "vm[c](false);"
2.21 - + "return vm[c].$class;"
2.22 + + "if (!m) return null;"
2.23 + + "m(false);"
2.24 + + "return m.$class;"
2.25 )
2.26 private static native Class<?> loadCls(String n, String c);
2.27