1.1 --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Sat Nov 17 19:03:17 2012 +0100
1.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Sun Nov 18 08:28:28 2012 +0100
1.3 @@ -1,12 +1,19 @@
1.4 /* */
1.5
1.6
1.7 -function java_lang_String_consVAC(arg0,arg1) {
1.8 - arg0.r = arg1.join("");
1.9 +function java_lang_String_consVAC(self,charArr) {
1.10 + for (var i = 0; i < charArr.length; i++) {
1.11 + if (typeof charArr[i] === 'number') charArr[i] = String.fromCharCode(charArr[i]);
1.12 + }
1.13 + self.r = charArr.join("");
1.14 }
1.15
1.16 function java_lang_String_consVACII(self, charArr, off, cnt) {
1.17 - self.r = charArr.slice(off, off + cnt).join("");
1.18 + var up = off + cnt;
1.19 + for (var i = off; i < up; i++) {
1.20 + if (typeof charArr[i] === 'number') charArr[i] = String.fromCharCode(charArr[i]);
1.21 + }
1.22 + self.r = charArr.slice(off, up).join("");
1.23 }
1.24
1.25 function java_lang_String_charAtCI(arg0,arg1) {
2.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Sat Nov 17 19:03:17 2012 +0100
2.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Sun Nov 18 08:28:28 2012 +0100
2.3 @@ -43,6 +43,14 @@
2.4 char[] arr = { a, b, c };
2.5 return new String(arr).toString();
2.6 }
2.7 +
2.8 + public static String charsFromNumbers() {
2.9 + return chars((char)65, (char)66, (char)67);
2.10 + }
2.11 +
2.12 + public static String charsFromChars() {
2.13 + return chars('A', 'B', 'C');
2.14 + }
2.15
2.16 public static String chars(char a, char b, char c) {
2.17 return ("" + a + b +c).toString();
3.1 --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Sat Nov 17 19:03:17 2012 +0100
3.2 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Sun Nov 18 08:28:28 2012 +0100
3.3 @@ -52,6 +52,22 @@
3.4 );
3.5 }
3.6
3.7 + @Test public void concatCharsFromInts() throws Exception {
3.8 + assertExec(
3.9 + "Composing yields ABC",
3.10 + "org_apidesign_vm4brwsr_StringSample_charsFromNumbersLjava_lang_String",
3.11 + "ABC"
3.12 + );
3.13 + }
3.14 +
3.15 + @Test public void concatCharsFromChars() throws Exception {
3.16 + assertExec(
3.17 + "Composing yields ABC",
3.18 + "org_apidesign_vm4brwsr_StringSample_charsFromCharsLjava_lang_String",
3.19 + "ABC"
3.20 + );
3.21 + }
3.22 +
3.23 @Test(timeOut=10000) public void toStringConcatenation() throws Exception {
3.24 assertExec(
3.25 "Five executions should generate 5Hello World!",