# HG changeset patch # User Jaroslav Tulach # Date 1399842405 -7200 # Node ID 0c5a8b83182af5f32e5b253a0135064a94a38430 # Parent a936cbe904745496a025d40ae75d2c67381d7a1e Full obfuscation of libraries works OK diff -r a936cbe90474 -r 0c5a8b83182a rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun May 11 12:24:19 2014 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun May 11 23:06:45 2014 +0200 @@ -1313,7 +1313,8 @@ String[] fi = jc.getFieldInfoName(indx); final int type = VarType.fromFieldType(fi[2].charAt(0)); String ac = accessClass(mangleClassName(fi[0])); - smapper.assign(this, type, ac + "(false)._" + fi[1] + "()"); + String af = accessField(ac + "(false)", "_" + fi[1], fi); + smapper.assign(this, type, af + "()"); i += 2; addReference(fi[0]); break; diff -r a936cbe90474 -r 0c5a8b83182a rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun May 11 12:24:19 2014 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun May 11 23:06:45 2014 +0200 @@ -98,7 +98,7 @@ } for (String r : asBinary.toArray()) { - append("\n ").append(getExportsObject()).append(".registerResource('"); + append("\n ").append(getExportsObject()).append("['registerResource']('"); append(r).append("', '"); InputStream is = this.resources.get(r); byte[] arr = new byte[is.available()]; @@ -522,7 +522,7 @@ + " for (var i = 0; i < extensions.length; ++i) {\n" + " extensions[i](vm);\n" + " }\n" - + " vm.registerResource = null;\n" + + " vm['registerResource'] = null;\n" + " var knownExtensions = extensions.length;\n" + " var loader = {};\n" + " loader.vm = vm;\n" @@ -535,9 +535,9 @@ + " load__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2(loader, name, args);\n" + " } catch (err) {\n" + " while (knownExtensions < extensions.length) {\n" - + " vm.registerResource = registerResource;\n" + + " vm['registerResource'] = registerResource;\n" + " extensions[knownExtensions++](vm);\n" - + " vm.registerResource = null;\n" + + " vm['registerResource'] = null;\n" + " }\n" + " fn = vm[attr];\n" + " if (fn) return fn(false);\n" @@ -568,9 +568,9 @@ + " loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2I(loader, name, args, skip);\n" + " if (ret !== null) return ret;\n" + " while (knownExtensions < extensions.length) {\n" - + " vm.registerResource = registerResource;\n" + + " vm['registerResource'] = registerResource;\n" + " extensions[knownExtensions++](vm);\n" - + " vm.registerResource = null;\n" + + " vm['registerResource'] = null;\n" + " }\n" + " var arr = resources[name];\n" + " return (arr && arr.length > arrSize) ? arr[arrSize] : null;\n" diff -r a936cbe90474 -r 0c5a8b83182a rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun May 11 12:24:19 2014 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun May 11 23:06:45 2014 +0200 @@ -37,46 +37,46 @@ return a % b; } - static float deserFloat() throws IOException { + public static float deserFloat() throws IOException { byte[] arr = {(byte) 71, (byte) 84, (byte) 52, (byte) 83}; ByteArrayInputStream is = new ByteArrayInputStream(arr); DataInputStream dis = new DataInputStream(is); float r = dis.readFloat(); return r; } - static double deserDouble() throws IOException { + public static double deserDouble() throws IOException { byte[] arr = {(byte)64, (byte)8, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0}; ByteArrayInputStream is = new ByteArrayInputStream(arr); DataInputStream dis = new DataInputStream(is); return dis.readDouble(); } - static long deserLong(byte[] arr) throws IOException { + public static long deserLong(byte[] arr) throws IOException { ByteArrayInputStream is = new ByteArrayInputStream(arr); DataInputStream dis = new DataInputStream(is); return dis.readLong(); } - static long deserLong(byte[] arr, int shift) throws IOException { + public static long deserLong(byte[] arr, int shift) throws IOException { return deserLong(arr) >> shift; } - static int deserInt() throws IOException { + public static int deserInt() throws IOException { byte[] arr = {(byte) 71, (byte) 84, (byte) 52, (byte) 83}; ByteArrayInputStream is = new ByteArrayInputStream(arr); DataInputStream dis = new DataInputStream(is); return dis.readInt(); } - static long bytesToLong(byte b1, byte b2, int shift) { + public static long bytesToLong(byte b1, byte b2, int shift) { return (((long)b1 << 56) + ((long)b2 & 255) << 48) >> shift; } - static String intToString() { + public static String intToString() { return new Integer(5).toString().toString(); } - static String floatToString() { + public static String floatToString() { return new Float(7.0).toString().toString(); } - static double seven(int todo) { + public static double seven(int todo) { switch (todo) { case 0: return sevenNew().doubleValue(); case 1: return sevenNew().intValue(); @@ -91,7 +91,7 @@ default: throw new IllegalStateException(); } } - static boolean bseven(int todo) { + public static boolean bseven(int todo) { switch (todo) { case 30: return bvalueOf(Boolean.FALSE); case 31: return bvalueOf(Boolean.TRUE); diff -r a936cbe90474 -r 0c5a8b83182a rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java Sun May 11 12:24:19 2014 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java Sun May 11 23:06:45 2014 +0200 @@ -64,7 +64,7 @@ ((long)b2 & 255) << 48) >> shift; } - static String loadHello() throws IOException { + public static String loadHello() throws IOException { Enumeration en; try { en = Resources.class.getClassLoader().getResources("META-INF/ahoj"); @@ -78,7 +78,7 @@ } return sb.toString().toString(); } - static String loadJustHello() throws IOException { + public static String loadJustHello() throws IOException { URL url = Resources.class.getResource("/META-INF/ahoj"); StringBuilder sb = new StringBuilder(); sb.append(readIS(url.openStream(), true)); diff -r a936cbe90474 -r 0c5a8b83182a rt/vm/src/test/java/org/apidesign/vm4brwsr/TestVM.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/TestVM.java Sun May 11 12:24:19 2014 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/TestVM.java Sun May 11 23:06:45 2014 +0200 @@ -160,7 +160,9 @@ return super.get(name); } }). - addRootClasses(name).library(true); + addRootClasses(name). + obfuscation(ObfuscationLevel.FULL). + library(true); if (resourceName != null) { b2b = b2b.addResources(resourceName); }