1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Wed May 07 11:39:31 2014 +0200
1.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/CompileCP.java Wed May 07 11:41:41 2014 +0200
1.3 @@ -144,9 +144,6 @@
1.4 while (en.hasMoreElements()) {
1.5 JarEntry e = en.nextElement();
1.6 final String n = e.getName();
1.7 - if (n.contains("package-info")) {
1.8 - continue;
1.9 - }
1.10 if (n.endsWith("/")) {
1.11 continue;
1.12 }
1.13 @@ -192,9 +189,6 @@
1.14 private static void listDir(File f, String pref, List<String> classes, List<String> resources) throws IOException {
1.15 File[] arr = f.listFiles();
1.16 if (arr == null) {
1.17 - if (f.getName().equals("package-info.class")) {
1.18 - return;
1.19 - }
1.20 if (f.getName().endsWith(".class")) {
1.21 classes.add(pref + f.getName().substring(0, f.getName().length() - 6));
1.22 } else {
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed May 07 11:39:31 2014 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Wed May 07 11:41:41 2014 +0200
2.3 @@ -19,6 +19,7 @@
2.4
2.5 import java.io.IOException;
2.6 import java.io.InputStream;
2.7 +import java.util.Locale;
2.8 import static org.apidesign.vm4brwsr.ByteCodeParser.*;
2.9
2.10 /** Translator of the code inside class files to JavaScript.
2.11 @@ -1533,7 +1534,18 @@
2.12 case '_': sb.append("_1"); break;
2.13 case ';': sb.append("_2"); break;
2.14 case '[': sb.append("_3"); break;
2.15 - default: sb.append(ch); break;
2.16 + default:
2.17 + if (Character.isJavaIdentifierPart(ch)) {
2.18 + sb.append(ch);
2.19 + } else {
2.20 + sb.append("_0");
2.21 + String hex = Integer.toHexString(ch).toLowerCase(Locale.ENGLISH);
2.22 + for (int m = hex.length(); m < 4; m++) {
2.23 + sb.append("0");
2.24 + }
2.25 + sb.append(hex);
2.26 + }
2.27 + break;
2.28 }
2.29 }
2.30 return sb.toString();