1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun May 11 12:24:19 2014 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Sun May 11 23:06:45 2014 +0200
1.3 @@ -1313,7 +1313,8 @@
1.4 String[] fi = jc.getFieldInfoName(indx);
1.5 final int type = VarType.fromFieldType(fi[2].charAt(0));
1.6 String ac = accessClass(mangleClassName(fi[0]));
1.7 - smapper.assign(this, type, ac + "(false)._" + fi[1] + "()");
1.8 + String af = accessField(ac + "(false)", "_" + fi[1], fi);
1.9 + smapper.assign(this, type, af + "()");
1.10 i += 2;
1.11 addReference(fi[0]);
1.12 break;
2.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun May 11 12:24:19 2014 +0200
2.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun May 11 23:06:45 2014 +0200
2.3 @@ -98,7 +98,7 @@
2.4 }
2.5
2.6 for (String r : asBinary.toArray()) {
2.7 - append("\n ").append(getExportsObject()).append(".registerResource('");
2.8 + append("\n ").append(getExportsObject()).append("['registerResource']('");
2.9 append(r).append("', '");
2.10 InputStream is = this.resources.get(r);
2.11 byte[] arr = new byte[is.available()];
2.12 @@ -522,7 +522,7 @@
2.13 + " for (var i = 0; i < extensions.length; ++i) {\n"
2.14 + " extensions[i](vm);\n"
2.15 + " }\n"
2.16 - + " vm.registerResource = null;\n"
2.17 + + " vm['registerResource'] = null;\n"
2.18 + " var knownExtensions = extensions.length;\n"
2.19 + " var loader = {};\n"
2.20 + " loader.vm = vm;\n"
2.21 @@ -535,9 +535,9 @@
2.22 + " load__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2(loader, name, args);\n"
2.23 + " } catch (err) {\n"
2.24 + " while (knownExtensions < extensions.length) {\n"
2.25 - + " vm.registerResource = registerResource;\n"
2.26 + + " vm['registerResource'] = registerResource;\n"
2.27 + " extensions[knownExtensions++](vm);\n"
2.28 - + " vm.registerResource = null;\n"
2.29 + + " vm['registerResource'] = null;\n"
2.30 + " }\n"
2.31 + " fn = vm[attr];\n"
2.32 + " if (fn) return fn(false);\n"
2.33 @@ -568,9 +568,9 @@
2.34 + " loadBytes___3BLjava_lang_Object_2Ljava_lang_String_2_3Ljava_lang_Object_2I(loader, name, args, skip);\n"
2.35 + " if (ret !== null) return ret;\n"
2.36 + " while (knownExtensions < extensions.length) {\n"
2.37 - + " vm.registerResource = registerResource;\n"
2.38 + + " vm['registerResource'] = registerResource;\n"
2.39 + " extensions[knownExtensions++](vm);\n"
2.40 - + " vm.registerResource = null;\n"
2.41 + + " vm['registerResource'] = null;\n"
2.42 + " }\n"
2.43 + " var arr = resources[name];\n"
2.44 + " return (arr && arr.length > arrSize) ? arr[arrSize] : null;\n"
3.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun May 11 12:24:19 2014 +0200
3.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Numbers.java Sun May 11 23:06:45 2014 +0200
3.3 @@ -37,46 +37,46 @@
3.4 return a % b;
3.5 }
3.6
3.7 - static float deserFloat() throws IOException {
3.8 + public static float deserFloat() throws IOException {
3.9 byte[] arr = {(byte) 71, (byte) 84, (byte) 52, (byte) 83};
3.10 ByteArrayInputStream is = new ByteArrayInputStream(arr);
3.11 DataInputStream dis = new DataInputStream(is);
3.12 float r = dis.readFloat();
3.13 return r;
3.14 }
3.15 - static double deserDouble() throws IOException {
3.16 + public static double deserDouble() throws IOException {
3.17 byte[] arr = {(byte)64, (byte)8, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0};
3.18 ByteArrayInputStream is = new ByteArrayInputStream(arr);
3.19 DataInputStream dis = new DataInputStream(is);
3.20 return dis.readDouble();
3.21 }
3.22 - static long deserLong(byte[] arr) throws IOException {
3.23 + public static long deserLong(byte[] arr) throws IOException {
3.24 ByteArrayInputStream is = new ByteArrayInputStream(arr);
3.25 DataInputStream dis = new DataInputStream(is);
3.26 return dis.readLong();
3.27 }
3.28 - static long deserLong(byte[] arr, int shift) throws IOException {
3.29 + public static long deserLong(byte[] arr, int shift) throws IOException {
3.30 return deserLong(arr) >> shift;
3.31 }
3.32 - static int deserInt() throws IOException {
3.33 + public static int deserInt() throws IOException {
3.34 byte[] arr = {(byte) 71, (byte) 84, (byte) 52, (byte) 83};
3.35 ByteArrayInputStream is = new ByteArrayInputStream(arr);
3.36 DataInputStream dis = new DataInputStream(is);
3.37 return dis.readInt();
3.38 }
3.39 - static long bytesToLong(byte b1, byte b2, int shift) {
3.40 + public static long bytesToLong(byte b1, byte b2, int shift) {
3.41 return (((long)b1 << 56) +
3.42 ((long)b2 & 255) << 48) >> shift;
3.43 }
3.44
3.45 - static String intToString() {
3.46 + public static String intToString() {
3.47 return new Integer(5).toString().toString();
3.48 }
3.49 - static String floatToString() {
3.50 + public static String floatToString() {
3.51 return new Float(7.0).toString().toString();
3.52 }
3.53
3.54 - static double seven(int todo) {
3.55 + public static double seven(int todo) {
3.56 switch (todo) {
3.57 case 0: return sevenNew().doubleValue();
3.58 case 1: return sevenNew().intValue();
3.59 @@ -91,7 +91,7 @@
3.60 default: throw new IllegalStateException();
3.61 }
3.62 }
3.63 - static boolean bseven(int todo) {
3.64 + public static boolean bseven(int todo) {
3.65 switch (todo) {
3.66 case 30: return bvalueOf(Boolean.FALSE);
3.67 case 31: return bvalueOf(Boolean.TRUE);
4.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java Sun May 11 12:24:19 2014 +0200
4.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/Resources.java Sun May 11 23:06:45 2014 +0200
4.3 @@ -64,7 +64,7 @@
4.4 ((long)b2 & 255) << 48) >> shift;
4.5 }
4.6
4.7 - static String loadHello() throws IOException {
4.8 + public static String loadHello() throws IOException {
4.9 Enumeration<URL> en;
4.10 try {
4.11 en = Resources.class.getClassLoader().getResources("META-INF/ahoj");
4.12 @@ -78,7 +78,7 @@
4.13 }
4.14 return sb.toString().toString();
4.15 }
4.16 - static String loadJustHello() throws IOException {
4.17 + public static String loadJustHello() throws IOException {
4.18 URL url = Resources.class.getResource("/META-INF/ahoj");
4.19 StringBuilder sb = new StringBuilder();
4.20 sb.append(readIS(url.openStream(), true));
5.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/TestVM.java Sun May 11 12:24:19 2014 +0200
5.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/TestVM.java Sun May 11 23:06:45 2014 +0200
5.3 @@ -160,7 +160,9 @@
5.4 return super.get(name);
5.5 }
5.6 }).
5.7 - addRootClasses(name).library(true);
5.8 + addRootClasses(name).
5.9 + obfuscation(ObfuscationLevel.FULL).
5.10 + library(true);
5.11 if (resourceName != null) {
5.12 b2b = b2b.addResources(resourceName);
5.13 }