1.1 --- a/emul/src/main/java/java/lang/AbstractStringBuilder.java Mon Dec 03 19:51:46 2012 +0100
1.2 +++ b/emul/src/main/java/java/lang/AbstractStringBuilder.java Tue Dec 04 09:16:53 2012 +0100
1.3 @@ -25,8 +25,6 @@
1.4
1.5 package java.lang;
1.6
1.7 -import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.8 -
1.9 /**
1.10 * A mutable sequence of characters.
1.11 * <p>
1.12 @@ -600,22 +598,8 @@
1.13 * @param i an {@code int}.
1.14 * @return a reference to this object.
1.15 */
1.16 - @JavaScriptBody(
1.17 - args={ "self", "i" },
1.18 - body="return java_lang_AbstractStringBuilder(true).appendLjava_lang_AbstractStringBuilderLjava_lang_String(self,i.toString());"
1.19 - )
1.20 public AbstractStringBuilder append(int i) {
1.21 - if (i == Integer.MIN_VALUE) {
1.22 - append("-2147483648");
1.23 - return this;
1.24 - }
1.25 - int appendedLength = (i < 0) ? Integer.stringSize(-i) + 1
1.26 - : Integer.stringSize(i);
1.27 - int spaceNeeded = count + appendedLength;
1.28 - ensureCapacityInternal(spaceNeeded);
1.29 - Integer.getChars(i, spaceNeeded, value);
1.30 - count = spaceNeeded;
1.31 - return this;
1.32 + return append(Integer.toString(i));
1.33 }
1.34
1.35 /**
2.1 --- a/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Element.java Mon Dec 03 19:51:46 2012 +0100
2.2 +++ b/javaquery/api/src/main/java/org/apidesign/bck2brwsr/htmlpage/api/Element.java Tue Dec 04 09:16:53 2012 +0100
2.3 @@ -57,7 +57,7 @@
2.4 @JavaScriptBody(
2.5 args={"el", "r"},
2.6 body="var e = window.document.getElementById(el.fld_id);\n"
2.7 - + "e.onclick = function() { r.runV(); };\n"
2.8 + + "e.onclick = function() { r.run__V(); };\n"
2.9 )
2.10 public final void addOnClick(Runnable r) {
2.11 throw new UnsupportedOperationException("Needs JavaScript!");
3.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Mon Dec 03 19:51:46 2012 +0100
3.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Dec 04 09:16:53 2012 +0100
3.3 @@ -169,7 +169,7 @@
3.4 StringBuilder argsCnt = new StringBuilder();
3.5 final String mn = findMethodName(m, argsCnt);
3.6 out.append(prefix).append(mn).append(" = function");
3.7 - if (mn.equals("classV")) {
3.8 + if (mn.equals("class__V")) {
3.9 toInitilize.add(className(jc) + "(false)." + mn);
3.10 }
3.11 out.append('(');
3.12 @@ -798,6 +798,7 @@
3.13 int i = 0;
3.14 Boolean count = null;
3.15 boolean array = false;
3.16 + sig.append("__");
3.17 int firstPos = sig.length();
3.18 while (i < descriptor.length()) {
3.19 char ch = descriptor.charAt(i++);
3.20 @@ -808,9 +809,6 @@
3.21 case ')':
3.22 count = false;
3.23 continue;
3.24 - case 'A':
3.25 - array = true;
3.26 - break;
3.27 case 'B':
3.28 case 'C':
3.29 case 'D':
3.30 @@ -821,7 +819,7 @@
3.31 case 'Z':
3.32 if (count) {
3.33 if (array) {
3.34 - sig.append('A');
3.35 + sig.append("_3");
3.36 }
3.37 sig.append(ch);
3.38 if (ch == 'J' || ch == 'D') {
3.39 @@ -833,7 +831,7 @@
3.40 hasReturnType[0] = true;
3.41 sig.insert(firstPos, ch);
3.42 if (array) {
3.43 - sig.insert(firstPos, 'A');
3.44 + sig.insert(firstPos, "_3");
3.45 }
3.46 }
3.47 array = false;
3.48 @@ -845,33 +843,47 @@
3.49 continue;
3.50 case 'L':
3.51 int next = descriptor.indexOf(';', i);
3.52 + String realSig = mangleSig(descriptor, i - 1, next + 1);
3.53 if (count) {
3.54 if (array) {
3.55 - sig.append('A');
3.56 + sig.append("_3");
3.57 }
3.58 - sig.append(ch);
3.59 - sig.append(descriptor.substring(i, next).replace('/', '_'));
3.60 + sig.append(realSig);
3.61 cnt.append('0');
3.62 } else {
3.63 - sig.insert(firstPos, descriptor.substring(i, next).replace('/', '_'));
3.64 - sig.insert(firstPos, ch);
3.65 + sig.insert(firstPos, realSig);
3.66 if (array) {
3.67 - sig.insert(firstPos, 'A');
3.68 + sig.insert(firstPos, "_3");
3.69 }
3.70 hasReturnType[0] = true;
3.71 }
3.72 i = next + 1;
3.73 continue;
3.74 case '[':
3.75 - //arrays++;
3.76 + array = true;
3.77 continue;
3.78 default:
3.79 - break; // invalid character
3.80 + throw new IllegalStateException("Invalid char: " + ch);
3.81 }
3.82 }
3.83 }
3.84 +
3.85 + private static String mangleSig(String txt, int first, int last) {
3.86 + StringBuilder sb = new StringBuilder();
3.87 + for (int i = first; i < last; i++) {
3.88 + final char ch = txt.charAt(i);
3.89 + switch (ch) {
3.90 + case '/': sb.append('_'); break;
3.91 + case '_': sb.append("_1"); break;
3.92 + case ';': sb.append("_2"); break;
3.93 + case '[': sb.append("_3"); break;
3.94 + default: sb.append(ch); break;
3.95 + }
3.96 + }
3.97 + return sb.toString();
3.98 + }
3.99
3.100 - private String findMethodName(MethodData m, StringBuilder cnt) {
3.101 + private static String findMethodName(MethodData m, StringBuilder cnt) {
3.102 StringBuilder name = new StringBuilder();
3.103 if ("<init>".equals(m.getName())) { // NOI18N
3.104 name.append("cons"); // NOI18N
3.105 @@ -882,11 +894,11 @@
3.106 }
3.107
3.108 boolean hasReturn[] = { false };
3.109 - countArgs(findDescriptor(m.getInternalSig()), hasReturn, name, cnt);
3.110 + countArgs(m.getInternalSig(), hasReturn, name, cnt);
3.111 return name.toString();
3.112 }
3.113
3.114 - private String findMethodName(String[] mi, StringBuilder cnt, boolean[] hasReturn) {
3.115 + static String findMethodName(String[] mi, StringBuilder cnt, boolean[] hasReturn) {
3.116 StringBuilder name = new StringBuilder();
3.117 String descr = mi[2];//mi.getDescriptor();
3.118 String nm= mi[1];
3.119 @@ -895,7 +907,7 @@
3.120 } else {
3.121 name.append(nm);
3.122 }
3.123 - countArgs(findDescriptor(descr), hasReturn, name, cnt);
3.124 + countArgs(descr, hasReturn, name, cnt);
3.125 return name.toString();
3.126 }
3.127
3.128 @@ -995,10 +1007,6 @@
3.129 return s;
3.130 }
3.131
3.132 - private String findDescriptor(String d) {
3.133 - return d.replace('[', 'A');
3.134 - }
3.135 -
3.136 private boolean javaScriptBody(String prefix, MethodData m, boolean isStatic) throws IOException {
3.137 byte[] arr = m.findAnnotationData(true);
3.138 if (arr == null) {
4.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/ArrayTest.java Mon Dec 03 19:51:46 2012 +0100
4.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ArrayTest.java Tue Dec 04 09:16:53 2012 +0100
4.3 @@ -29,7 +29,7 @@
4.4 */
4.5 public class ArrayTest {
4.6 @Test public void verifySimpleIntOperation() throws Exception {
4.7 - assertExec("CheckTheSum", Array.class, "simpleI",
4.8 + assertExec("CheckTheSum", Array.class, "simple__I",
4.9 Double.valueOf(15)
4.10 );
4.11 }
4.12 @@ -39,13 +39,13 @@
4.13 }
4.14
4.15 @Test public void verifyOperationsOnArrays() throws Exception {
4.16 - assertExec("The sum is 105", Array.class, "sumD",
4.17 + assertExec("The sum is 105", Array.class, "sum__D",
4.18 Double.valueOf(105)
4.19 );
4.20 }
4.21
4.22 @Test public void doesCopyArrayWork() throws Exception {
4.23 - assertExec("Returns 'a'", Array.class, "copyArrayC", Double.valueOf('a'));
4.24 + assertExec("Returns 'a'", Array.class, "copyArray__C", Double.valueOf('a'));
4.25 }
4.26
4.27 private static CharSequence codeSeq;
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
5.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/ByteCodeToJavaScriptTest.java Tue Dec 04 09:16:53 2012 +0100
5.3 @@ -0,0 +1,55 @@
5.4 +/**
5.5 + * Back 2 Browser Bytecode Translator
5.6 + * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5.7 + *
5.8 + * This program is free software: you can redistribute it and/or modify
5.9 + * it under the terms of the GNU General Public License as published by
5.10 + * the Free Software Foundation, version 2 of the License.
5.11 + *
5.12 + * This program is distributed in the hope that it will be useful,
5.13 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
5.14 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5.15 + * GNU General Public License for more details.
5.16 + *
5.17 + * You should have received a copy of the GNU General Public License
5.18 + * along with this program. Look for COPYING file in the top folder.
5.19 + * If not, see http://opensource.org/licenses/GPL-2.0.
5.20 + */
5.21 +package org.apidesign.vm4brwsr;
5.22 +
5.23 +import static org.testng.Assert.*;
5.24 +import org.testng.annotations.Test;
5.25 +
5.26 +/**
5.27 + *
5.28 + * @author Jaroslav Tulach <jtulach@netbeans.org>
5.29 + */
5.30 +public class ByteCodeToJavaScriptTest {
5.31 +
5.32 + public ByteCodeToJavaScriptTest() {
5.33 + }
5.34 +
5.35 + @Test
5.36 + public void findMethodNameManglesObjectsCorrectly() {
5.37 + StringBuilder cnt = new StringBuilder();
5.38 + boolean[] hasReturn = { false };
5.39 + String ret = ByteCodeToJavaScript.findMethodName(new String[] {
5.40 + "StringTest", "replace", "(Ljava/lang/String;CC)Ljava/lang/String;"
5.41 + }, cnt, hasReturn);
5.42 + assertEquals(cnt.toString(), "000", "No doubles or longs");
5.43 + assertTrue(hasReturn[0], "Returns string");
5.44 + assertEquals(ret, "replace__Ljava_lang_String_2Ljava_lang_String_2CC");
5.45 + }
5.46 +
5.47 + @Test
5.48 + public void manglingArrays() {
5.49 + StringBuilder cnt = new StringBuilder();
5.50 + boolean[] hasReturn = { false };
5.51 + String ret = ByteCodeToJavaScript.findMethodName(new String[] {
5.52 + "VMinVM", "toJavaScript", "([B)Ljava/lang/String;"
5.53 + }, cnt, hasReturn);
5.54 + assertEquals(cnt.toString(), "0", "No doubles or longs");
5.55 + assertTrue(hasReturn[0], "Returns string");
5.56 + assertEquals(ret, "toJavaScript__Ljava_lang_String_2_3B");
5.57 + }
5.58 +}
6.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/InstanceTest.java Mon Dec 03 19:51:46 2012 +0100
6.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/InstanceTest.java Tue Dec 04 09:16:53 2012 +0100
6.3 @@ -29,42 +29,42 @@
6.4 @Test public void verifyDefaultDoubleValue() throws Exception {
6.5 assertExec(
6.6 "Will be zero",
6.7 - Instance.class, "defaultDblValueD",
6.8 + Instance.class, "defaultDblValue__D",
6.9 Double.valueOf(0)
6.10 );
6.11 }
6.12 @Test public void verifyStaticMethodCall() throws Exception {
6.13 assertExec(
6.14 "Will be zero",
6.15 - InstanceSub.class, "recallDblD",
6.16 + InstanceSub.class, "recallDbl__D",
6.17 Double.valueOf(0)
6.18 );
6.19 }
6.20 @Test public void verifyAssignedByteValue() throws Exception {
6.21 assertExec(
6.22 "Will one thirty one",
6.23 - Instance.class, "assignedByteValueB",
6.24 + Instance.class, "assignedByteValue__B",
6.25 Double.valueOf(31)
6.26 );
6.27 }
6.28 @Test public void verifyMagicOne() throws Exception {
6.29 assertExec(
6.30 "Should be three and something",
6.31 - Instance.class, "magicOneD",
6.32 + Instance.class, "magicOne__D",
6.33 Double.valueOf(3.3)
6.34 );
6.35 }
6.36 @Test public void verifyInstanceMethods() throws Exception {
6.37 assertExec(
6.38 "Should be eleven as we invoke overwritten method, plus 44",
6.39 - Instance.class, "virtualBytesI",
6.40 + Instance.class, "virtualBytes__I",
6.41 Double.valueOf(55)
6.42 );
6.43 }
6.44 @Test public void verifyInterfaceMethods() throws Exception {
6.45 assertExec(
6.46 "Retruns default value",
6.47 - Instance.class, "interfaceBytesF",
6.48 + Instance.class, "interfaceBytes__F",
6.49 Double.valueOf(31)
6.50 );
6.51 }
6.52 @@ -72,7 +72,7 @@
6.53 @Test public void isNull() throws Exception {
6.54 assertExec(
6.55 "Yes, we are instance",
6.56 - Instance.class, "isNullZ",
6.57 + Instance.class, "isNull__Z",
6.58 Double.valueOf(0.0)
6.59 );
6.60 }
6.61 @@ -80,7 +80,7 @@
6.62 @Test public void isInstanceOf() throws Exception {
6.63 assertExec(
6.64 "Yes, we are instance",
6.65 - Instance.class, "instanceOfZZ",
6.66 + Instance.class, "instanceOf__ZZ",
6.67 Double.valueOf(1.0), true
6.68 );
6.69 }
6.70 @@ -88,7 +88,7 @@
6.71 @Test public void notInstanceOf() throws Exception {
6.72 assertExec(
6.73 "No, we are not an instance",
6.74 - Instance.class, "instanceOfZZ",
6.75 + Instance.class, "instanceOf__ZZ",
6.76 Double.valueOf(0.0), false
6.77 );
6.78 }
6.79 @@ -96,14 +96,14 @@
6.80 @Test public void verifyCastToClass() throws Exception {
6.81 assertExec(
6.82 "Five signals all is good",
6.83 - Instance.class, "castsWorkIZ",
6.84 + Instance.class, "castsWork__IZ",
6.85 Double.valueOf(5.0), false
6.86 );
6.87 }
6.88 @Test public void verifyCastToInterface() throws Exception {
6.89 assertExec(
6.90 "Five signals all is good",
6.91 - Instance.class, "castsWorkIZ",
6.92 + Instance.class, "castsWork__IZ",
6.93 Double.valueOf(5.0), true
6.94 );
6.95 }
6.96 @@ -111,7 +111,7 @@
6.97 @Test public void sharedConstructor() throws Exception {
6.98 assertExec(
6.99 "Constructor of first and 2nd instance should be the same",
6.100 - Instance.class, "sharedConstructorZ",
6.101 + Instance.class, "sharedConstructor__Z",
6.102 Double.valueOf(1.0)
6.103 );
6.104 }
6.105 @@ -119,7 +119,7 @@
6.106 @Test public void differentConstructor() throws Exception {
6.107 assertExec(
6.108 "Constructor of X and Y should be the different",
6.109 - Instance.class, "differentConstructorZ",
6.110 + Instance.class, "differentConstructor__Z",
6.111 Double.valueOf(0)
6.112 );
6.113 }
6.114 @@ -127,7 +127,7 @@
6.115 @Test public void jsObjectIsLikeJavaObject() throws Exception {
6.116 assertExec(
6.117 "JavaScript object is instance of Java Object",
6.118 - Instance.class, "iofObjectZ",
6.119 + Instance.class, "iofObject__Z",
6.120 Double.valueOf(1)
6.121 );
6.122 }
7.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Mon Dec 03 19:51:46 2012 +0100
7.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/NumberTest.java Tue Dec 04 09:16:53 2012 +0100
7.3 @@ -29,19 +29,19 @@
7.4 */
7.5 public class NumberTest {
7.6 @Test public void integerFromString() throws Exception {
7.7 - assertExec("Can convert string to integer", Integer.class, "parseIntILjava_lang_String",
7.8 + assertExec("Can convert string to integer", Integer.class, "parseInt__ILjava_lang_String_2",
7.9 Double.valueOf(333), "333"
7.10 );
7.11 }
7.12
7.13 @Test public void doubleFromString() throws Exception {
7.14 - assertExec("Can convert string to double", Double.class, "parseDoubleDLjava_lang_String",
7.15 + assertExec("Can convert string to double", Double.class, "parseDouble__DLjava_lang_String_2",
7.16 Double.valueOf(33.3), "33.3"
7.17 );
7.18 }
7.19
7.20 @Test public void autoboxDouble() throws Exception {
7.21 - assertExec("Autoboxing of doubles is OK", Numbers.class, "autoboxDblToStringLjava_lang_String",
7.22 + assertExec("Autoboxing of doubles is OK", Numbers.class, "autoboxDblToString__Ljava_lang_String_2",
7.23 "3.3"
7.24 );
7.25 }
7.26 @@ -51,7 +51,7 @@
7.27 }
7.28
7.29 @Test public void jslog1000() throws Exception {
7.30 - assertExec("log_10(1000) == 3", Math.class, "log10DD",
7.31 + assertExec("log_10(1000) == 3", Math.class, "log10__DD",
7.32 Double.valueOf(3.0), 1000.0
7.33 );
7.34 }
7.35 @@ -60,20 +60,20 @@
7.36 assertEquals(3, Numbers.rem(303, 10));
7.37 }
7.38 @Test public void jsRem() throws Exception {
7.39 - assertExec("Should be three", Numbers.class, "remIII",
7.40 + assertExec("Should be three", Numbers.class, "rem__III",
7.41 Double.valueOf(3.0), 303, 10
7.42 );
7.43 }
7.44
7.45 @Test public void deserializeInt() throws Exception {
7.46 int exp = Numbers.deserInt();
7.47 - assertExec("Should be the same", Numbers.class, "deserIntI",
7.48 + assertExec("Should be the same", Numbers.class, "deserInt__I",
7.49 Double.valueOf(exp)
7.50 );
7.51 }
7.52
7.53 @Test public void deserializeSimpleLong() throws Exception {
7.54 - assertExec("Should be 3454", Numbers.class, "deserLongJAB",
7.55 + assertExec("Should be 3454", Numbers.class, "deserLong__J_3B",
7.56 Double.valueOf(3454),
7.57 new byte[] { (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)13, (byte)126 }
7.58 );
7.59 @@ -84,7 +84,7 @@
7.60 (byte)64, (byte)8, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0, (byte)0
7.61 };
7.62 long exp = Numbers.deserLong(arr);
7.63 - assertExec("Should be " + exp, "org_apidesign_vm4brwsr_Numbers_deserLongJAB",
7.64 + assertExec("Should be " + exp, "org_apidesign_vm4brwsr_Numbers_deserLong__JAB",
7.65 Double.valueOf(exp), arr);
7.66 }
7.67 */
7.68 @@ -97,7 +97,7 @@
7.69
7.70 @Test public void deserializeFloatInJS() throws Exception {
7.71 float f = 54324.32423f;
7.72 - assertExec("Should be the same", Numbers.class, "deserFloatF",
7.73 + assertExec("Should be the same", Numbers.class, "deserFloat__F",
7.74 Double.valueOf(f)
7.75 );
7.76 }
7.77 @@ -110,7 +110,7 @@
7.78
7.79 @Test public void deserializeDoubleInJS() throws Exception {
7.80 double f = 3.0;
7.81 - assertExec("Should be the same", Numbers.class, "deserDoubleD", f);
7.82 + assertExec("Should be the same", Numbers.class, "deserDouble__D", f);
7.83 }
7.84 /*
7.85 @Test public void serDouble() throws IOException {
7.86 @@ -131,7 +131,7 @@
7.87 @Test public void fiveInStringJS() throws Exception {
7.88 String s = Numbers.intToString();
7.89 assertExec("Should be the same: " + s,
7.90 - Numbers.class, "intToStringLjava_lang_String",
7.91 + Numbers.class, "intToString__Ljava_lang_String_2",
7.92 s
7.93 );
7.94 }
7.95 @@ -139,7 +139,7 @@
7.96 @Test public void sevenInStringJS() throws Exception {
7.97 String s = Numbers.floatToString();
7.98 assertExec("Should be the same: " + s,
7.99 - Numbers.class, "floatToStringLjava_lang_String",
7.100 + Numbers.class, "floatToString__Ljava_lang_String_2",
7.101 s
7.102 );
7.103 }
8.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Mon Dec 03 19:51:46 2012 +0100
8.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StaticMethodTest.java Tue Dec 04 09:16:53 2012 +0100
8.3 @@ -36,7 +36,7 @@
8.4 @Test public void threePlusFour() throws Exception {
8.5 assertExec(
8.6 "Should be seven",
8.7 - StaticMethod.class, "sumIII",
8.8 + StaticMethod.class, "sum__III",
8.9 Double.valueOf(7),
8.10 3, 4
8.11 );
8.12 @@ -45,7 +45,7 @@
8.13 @Test public void checkReallyInitializedValues() throws Exception {
8.14 assertExec(
8.15 "Return true",
8.16 - StaticMethod.class, "isNullZ",
8.17 + StaticMethod.class, "isNull__Z",
8.18 Double.valueOf(1)
8.19 );
8.20 }
8.21 @@ -53,7 +53,7 @@
8.22 @Test public void powerOfThree() throws Exception {
8.23 assertExec(
8.24 "Should be nine",
8.25 - StaticMethod.class, "powerFF",
8.26 + StaticMethod.class, "power__FF",
8.27 Double.valueOf(9),
8.28 3.0f
8.29 );
8.30 @@ -62,7 +62,7 @@
8.31 @Test public void minusOne() throws Exception {
8.32 assertExec(
8.33 "Should be minus one",
8.34 - StaticMethod.class, "minusOneI",
8.35 + StaticMethod.class, "minusOne__I",
8.36 Double.valueOf(-1)
8.37 );
8.38 }
8.39 @@ -70,7 +70,7 @@
8.40 @Test public void doubleWithoutLong() throws Exception {
8.41 assertExec(
8.42 "Should be two",
8.43 - StaticMethod.class, "minusDDJ",
8.44 + StaticMethod.class, "minus__DDJ",
8.45 Double.valueOf(2),
8.46 3.0d, 1l
8.47 );
8.48 @@ -79,7 +79,7 @@
8.49 @Test public void divAndRound() throws Exception {
8.50 assertExec(
8.51 "Should be rounded to one",
8.52 - StaticMethod.class, "divIBD",
8.53 + StaticMethod.class, "div__IBD",
8.54 Double.valueOf(1),
8.55 3, 3.75
8.56 );
8.57 @@ -87,7 +87,7 @@
8.58 @Test public void mixedMethodFourParams() throws Exception {
8.59 assertExec(
8.60 "Should be two",
8.61 - StaticMethod.class, "mixIIJBD",
8.62 + StaticMethod.class, "mix__IIJBD",
8.63 Double.valueOf(20),
8.64 2, 10l, 5, 2.0
8.65 );
8.66 @@ -95,7 +95,7 @@
8.67 @Test public void factRec() throws Exception {
8.68 assertExec(
8.69 "Factorial of 5 is 120",
8.70 - StaticMethod.class, "factRecJI",
8.71 + StaticMethod.class, "factRec__JI",
8.72 Double.valueOf(120),
8.73 5
8.74 );
8.75 @@ -103,7 +103,7 @@
8.76 @Test public void factIter() throws Exception {
8.77 assertExec(
8.78 "Factorial of 5 is 120",
8.79 - StaticMethod.class, "factIterJI",
8.80 + StaticMethod.class, "factIter__JI",
8.81 Double.valueOf(120),
8.82 5
8.83 );
8.84 @@ -112,7 +112,7 @@
8.85 @Test public void xor() throws Exception {
8.86 assertExec(
8.87 "Xor is 4",
8.88 - StaticMethod.class, "xorJIJ",
8.89 + StaticMethod.class, "xor__JIJ",
8.90 Double.valueOf(4),
8.91 7,
8.92 3
8.93 @@ -122,7 +122,7 @@
8.94 @Test public void or() throws Exception {
8.95 assertExec(
8.96 "Or will be 7",
8.97 - StaticMethod.class, "orOrAndJZII",
8.98 + StaticMethod.class, "orOrAnd__JZII",
8.99 Double.valueOf(7),
8.100 true,
8.101 4,
8.102 @@ -132,14 +132,14 @@
8.103 @Test public void nullCheck() throws Exception {
8.104 assertExec(
8.105 "Returns nothing",
8.106 - StaticMethod.class, "noneLjava_lang_ObjectII",
8.107 + StaticMethod.class, "none__Ljava_lang_Object_2II",
8.108 null, 1, 3
8.109 );
8.110 }
8.111 @Test public void and() throws Exception {
8.112 assertExec(
8.113 "And will be 3",
8.114 - StaticMethod.class, "orOrAndJZII",
8.115 + StaticMethod.class, "orOrAnd__JZII",
8.116 Double.valueOf(3),
8.117 false,
8.118 7,
8.119 @@ -149,7 +149,7 @@
8.120 @Test public void inc4() throws Exception {
8.121 assertExec(
8.122 "It will be 4",
8.123 - StaticMethod.class, "inc4I",
8.124 + StaticMethod.class, "inc4__I",
8.125 Double.valueOf(4)
8.126 );
8.127 }
8.128 @@ -162,7 +162,7 @@
8.129 @Test public void shiftLeftInJS() throws Exception {
8.130 assertExec(
8.131 "Setting 9th bit",
8.132 - StaticMethod.class, "shiftLeftIII",
8.133 + StaticMethod.class, "shiftLeft__III",
8.134 Double.valueOf(256),
8.135 1, 8
8.136 );
8.137 @@ -176,7 +176,7 @@
8.138 @Test public void shiftRightInJS() throws Exception {
8.139 assertExec(
8.140 "Get -1",
8.141 - StaticMethod.class, "shiftArithmRightIIIZ",
8.142 + StaticMethod.class, "shiftArithmRight__IIIZ",
8.143 Double.valueOf(-1),
8.144 -8, 3, true
8.145 );
8.146 @@ -189,7 +189,7 @@
8.147 @Test public void unsignedShiftRightInJS() throws Exception {
8.148 assertExec(
8.149 "Get -1",
8.150 - StaticMethod.class, "shiftArithmRightIIIZ",
8.151 + StaticMethod.class, "shiftArithmRight__IIIZ",
8.152 Double.valueOf(1),
8.153 8, 3, false
8.154 );
8.155 @@ -198,7 +198,7 @@
8.156 @Test public void javaScriptBody() throws Exception {
8.157 assertExec(
8.158 "JavaScript string",
8.159 - StaticMethod.class, "i2sLjava_lang_StringII",
8.160 + StaticMethod.class, "i2s__Ljava_lang_String_2II",
8.161 "333",
8.162 330, 3
8.163 );
8.164 @@ -207,7 +207,7 @@
8.165 @Test public void switchJarda() throws Exception {
8.166 assertExec(
8.167 "The expected value",
8.168 - StaticMethod.class, "swtchLjava_lang_StringI",
8.169 + StaticMethod.class, "swtch__Ljava_lang_String_2I",
8.170 "Jarda",
8.171 0
8.172 );
8.173 @@ -216,7 +216,7 @@
8.174 @Test public void switchDarda() throws Exception {
8.175 assertExec(
8.176 "The expected value",
8.177 - StaticMethod.class, "swtchLjava_lang_StringI",
8.178 + StaticMethod.class, "swtch__Ljava_lang_String_2I",
8.179 "Darda",
8.180 1
8.181 );
8.182 @@ -224,7 +224,7 @@
8.183 @Test public void switchParda() throws Exception {
8.184 assertExec(
8.185 "The expected value",
8.186 - StaticMethod.class, "swtch2Ljava_lang_StringI",
8.187 + StaticMethod.class, "swtch2__Ljava_lang_String_2I",
8.188 "Parda",
8.189 22
8.190 );
8.191 @@ -232,7 +232,7 @@
8.192 @Test public void switchMarda() throws Exception {
8.193 assertExec(
8.194 "The expected value",
8.195 - StaticMethod.class, "swtchLjava_lang_StringI",
8.196 + StaticMethod.class, "swtch__Ljava_lang_String_2I",
8.197 "Marda",
8.198 -433
8.199 );
9.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Mon Dec 03 19:51:46 2012 +0100
9.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Tue Dec 04 09:16:53 2012 +0100
9.3 @@ -18,7 +18,6 @@
9.4 package org.apidesign.vm4brwsr;
9.5
9.6 import javax.script.Invocable;
9.7 -import javax.script.ScriptException;
9.8 import org.testng.annotations.Test;
9.9 import static org.testng.Assert.*;
9.10 import org.testng.annotations.BeforeClass;
9.11 @@ -31,7 +30,7 @@
9.12 @Test public void firstChar() throws Exception {
9.13 assertExec(
9.14 "First char in Hello is H",
9.15 - StringSample.class, "sayHelloCI",
9.16 + StringSample.class, "sayHello__CI",
9.17 72, 0
9.18 );
9.19 }
9.20 @@ -39,7 +38,7 @@
9.21 @Test public void fromChars() throws Exception {
9.22 assertExec(
9.23 "First char in Hello is ABC",
9.24 - StringSample.class, "fromCharsLjava_lang_StringCCC",
9.25 + StringSample.class, "fromChars__Ljava_lang_String_2CCC",
9.26 "ABC", 'A', 'B', 'C'
9.27 );
9.28 }
9.29 @@ -47,7 +46,7 @@
9.30 @Test public void concatChars() throws Exception {
9.31 assertExec(
9.32 "Composing yields ABC",
9.33 - StringSample.class, "charsLjava_lang_StringCCC",
9.34 + StringSample.class, "chars__Ljava_lang_String_2CCC",
9.35 "ABC", 'A', 'B', 'C'
9.36 );
9.37 }
9.38 @@ -55,7 +54,7 @@
9.39 @Test public void concatCharsFromInts() throws Exception {
9.40 assertExec(
9.41 "Composing yields ABC",
9.42 - StringSample.class, "charsFromNumbersLjava_lang_String",
9.43 + StringSample.class, "charsFromNumbers__Ljava_lang_String_2",
9.44 "ABC"
9.45 );
9.46 }
9.47 @@ -63,7 +62,7 @@
9.48 @Test public void concatCharsFromChars() throws Exception {
9.49 assertExec(
9.50 "Composing yields ABC",
9.51 - StringSample.class, "charsFromCharsLjava_lang_String",
9.52 + StringSample.class, "charsFromChars__Ljava_lang_String_2",
9.53 "ABC"
9.54 );
9.55 }
9.56 @@ -71,7 +70,7 @@
9.57 @Test public void instanceOfWorks() throws Exception {
9.58 assertExec(
9.59 "It is string",
9.60 - StringSample.class, "isStringInstanceZ",
9.61 + StringSample.class, "isStringInstance__Z",
9.62 Double.valueOf(1.0)
9.63 );
9.64 }
9.65 @@ -79,7 +78,7 @@
9.66 @Test(timeOut=10000) public void toStringConcatenation() throws Exception {
9.67 assertExec(
9.68 "Five executions should generate 5Hello World!",
9.69 - StringSample.class, "toStringTestLjava_lang_StringI",
9.70 + StringSample.class, "toStringTest__Ljava_lang_String_2I",
9.71 "Hello World!5", 5
9.72 );
9.73 }
9.74 @@ -90,7 +89,7 @@
9.75 @Test(timeOut=10000) public void stringStringConcat() throws Exception {
9.76 assertExec(
9.77 "Composes strings OK",
9.78 - StringSample.class, "concatStringsLjava_lang_String",
9.79 + StringSample.class, "concatStrings__Ljava_lang_String_2",
9.80 "Hello World!1" + "\\\n\r\t"
9.81 );
9.82 }
9.83 @@ -98,21 +97,21 @@
9.84 @Test public void equalsAndSubstring() throws Exception {
9.85 assertExec(
9.86 "Composes are OK",
9.87 - StringSample.class, "equalToHelloZII",
9.88 + StringSample.class, "equalToHello__ZII",
9.89 true, 0, 5
9.90 );
9.91 }
9.92 @Test public void replaceChars() throws Exception {
9.93 assertExec(
9.94 "Can replace slashes by underscores",
9.95 - StringSample.class, "replaceLjava_lang_StringLjava_lang_StringCC",
9.96 + StringSample.class, "replace__Ljava_lang_String_2Ljava_lang_String_2CC",
9.97 "x_y_z", "x/y/z", '/', '_'
9.98 );
9.99 }
9.100 @Test public void replaceIntChars() throws Exception {
9.101 assertExec(
9.102 "Can replace slashes by underscores",
9.103 - StringSample.class, "replaceLjava_lang_StringLjava_lang_StringCC",
9.104 + StringSample.class, "replace__Ljava_lang_String_2Ljava_lang_String_2CC",
9.105 "x_y_z", "x/y/z", (int)'/', (int)'_'
9.106 );
9.107 }
9.108 @@ -120,7 +119,7 @@
9.109 @Test public void insertBuilder() throws Exception {
9.110 assertExec(
9.111 "Can insert something into a buffer?",
9.112 - StringSample.class, "insertBufferLjava_lang_String",
9.113 + StringSample.class, "insertBuffer__Ljava_lang_String_2",
9.114 "Ahojdo!"
9.115 );
9.116 }
9.117 @@ -130,7 +129,7 @@
9.118 int jh = StringSample.hashCode(j);
9.119 assertExec(
9.120 "Hashcode is the same " +jh,
9.121 - StringSample.class, "hashCodeILjava_lang_String",
9.122 + StringSample.class, "hashCode__ILjava_lang_String_2",
9.123 Double.valueOf(jh), j
9.124 );
9.125 }
9.126 @@ -139,28 +138,28 @@
9.127 int jh = StringSample.hashCode(j);
9.128 assertExec(
9.129 "Hashcode is the same " + jh,
9.130 - StringSample.class, "hashCodeILjava_lang_String",
9.131 + StringSample.class, "hashCode__ILjava_lang_String_2",
9.132 Double.valueOf(jh), j
9.133 );
9.134 }
9.135 @Test public void stringSwitch1() throws Exception {
9.136 assertExec(
9.137 "Get one",
9.138 - StringSample.class, "stringSwitchILjava_lang_String",
9.139 + StringSample.class, "stringSwitch__ILjava_lang_String_2",
9.140 Double.valueOf(1), "jedna"
9.141 );
9.142 }
9.143 @Test public void stringSwitch2() throws Exception {
9.144 assertExec(
9.145 "Get two",
9.146 - StringSample.class, "stringSwitchILjava_lang_String",
9.147 + StringSample.class, "stringSwitch__ILjava_lang_String_2",
9.148 Double.valueOf(2), "dve"
9.149 );
9.150 }
9.151 @Test public void stringSwitchDefault() throws Exception {
9.152 assertExec(
9.153 "Get -1",
9.154 - StringSample.class, "stringSwitchILjava_lang_String",
9.155 + StringSample.class, "stringSwitch__ILjava_lang_String_2",
9.156 Double.valueOf(-1), "none"
9.157 );
9.158 }
9.159 @@ -169,7 +168,7 @@
9.160 assertEquals(StringSample.countAB("Ahoj Bedo!"), 3, "Verify Java code is sane");
9.161 assertExec(
9.162 "One A and one B adds to 3",
9.163 - StringSample.class, "countABILjava_lang_String",
9.164 + StringSample.class, "countAB__ILjava_lang_String_2",
9.165 Double.valueOf(3), "Ahoj Bedo!"
9.166 );
9.167
10.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/VMLazy.java Mon Dec 03 19:51:46 2012 +0100
10.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/VMLazy.java Tue Dec 04 09:16:53 2012 +0100
10.3 @@ -43,7 +43,7 @@
10.4
10.5 @JavaScriptBody(args = { "self", "n" },
10.6 body=
10.7 - "var cls = n.replaceLjava_lang_StringCC(n,'/','_').toString();"
10.8 + "var cls = n.replace__Ljava_lang_String_2CC(n,'/','_').toString();"
10.9 + "var glb = self.fld_global;"
10.10 + "var vm = self.fld_vm;"
10.11 + "if (glb[cls]) return false;"
11.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/VMLazyTest.java Mon Dec 03 19:51:46 2012 +0100
11.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/VMLazyTest.java Tue Dec 04 09:16:53 2012 +0100
11.3 @@ -53,7 +53,7 @@
11.4 sb.append("\n var glb = global;");
11.5 sb.append("\n lazyVM.prototype.loadClass = function(res, name) {");
11.6 sb.append("\n var script = org_apidesign_vm4brwsr_VMLazy(true)."
11.7 - + "toJavaScriptLjava_lang_StringLjava_lang_ObjectLjava_lang_ObjectAB("
11.8 + + "toJavaScript__Ljava_lang_String_2Ljava_lang_Object_2Ljava_lang_Object_2_3B("
11.9 + " glb, self,"
11.10 + " loader.get(res + '.class')"
11.11 + ");");
11.12 @@ -77,13 +77,13 @@
11.13
11.14 @Test public void invokeStaticMethod() throws Exception {
11.15 assertExec("Trying to get -1", "test", Double.valueOf(-1),
11.16 - "org/apidesign/vm4brwsr/StaticMethod", "org_apidesign_vm4brwsr_StaticMethod", "minusOneI"
11.17 + "org/apidesign/vm4brwsr/StaticMethod", "org_apidesign_vm4brwsr_StaticMethod", "minusOne__I"
11.18 );
11.19 }
11.20
11.21 @Test public void loadDependantClass() throws Exception {
11.22 assertExec("Trying to get zero", "test", Double.valueOf(0),
11.23 - "org/apidesign/vm4brwsr/InstanceSub", "org_apidesign_vm4brwsr_InstanceSub", "recallDblD"
11.24 + "org/apidesign/vm4brwsr/InstanceSub", "org_apidesign_vm4brwsr_InstanceSub", "recallDbl__D"
11.25 );
11.26 }
11.27
12.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/VMinVMTest.java Mon Dec 03 19:51:46 2012 +0100
12.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/VMinVMTest.java Tue Dec 04 09:16:53 2012 +0100
12.3 @@ -42,7 +42,7 @@
12.4 Object ret;
12.5 try {
12.6 ret = code.invokeFunction(VMinVM.class.getName().replace('.', '_'), true);
12.7 - ret = code.invokeMethod(ret, "toJavaScriptLjava_lang_StringAB", arr);
12.8 + ret = code.invokeMethod(ret, "toJavaScript__Ljava_lang_String_2_3B", arr);
12.9 } catch (Exception ex) {
12.10 File f = File.createTempFile("execution", ".js");
12.11 FileWriter w = new FileWriter(f);