# HG changeset patch # User Jaroslav Tulach # Date 1360063275 -3600 # Node ID 3026d9c844f09dca03eca06d88aecf20a89b8b91 # Parent 5866e89ef5685e790eced68470276a4f8b41f555 String(byte[],hibyte) gives proper length diff -r 5866e89ef568 -r 3026d9c844f0 emul/mini/src/main/java/java/lang/String.java --- a/emul/mini/src/main/java/java/lang/String.java Tue Feb 05 08:48:23 2013 +0100 +++ b/emul/mini/src/main/java/java/lang/String.java Tue Feb 05 12:21:15 2013 +0100 @@ -335,7 +335,7 @@ value[i] = (char) (hibyte | (ascii[i + offset] & 0xff)); } } - this.r = new String(value, 0, count); + initFromCharArray(value, offset, count); } /** diff -r 5866e89ef568 -r 3026d9c844f0 vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java --- a/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Tue Feb 05 08:48:23 2013 +0100 +++ b/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Tue Feb 05 12:21:15 2013 +0100 @@ -47,6 +47,19 @@ return "Ahoj".equals(null); } + @Compare public int highByteLenght() { + byte[] arr= { 77,97,110,105,102,101,115,116,45,86,101,114,115,105,111,110 }; + return new String(arr, 0).length(); + } + + @Compare public String highByte() { + byte[] arr= { 77,97,110,105,102,101,115,116,45,86,101,114,115,105,111,110 }; + StringBuilder sb = new StringBuilder(); + sb.append("pref:"); + sb.append(new String(arr, 0)); + return sb.toString(); + } + @Compare public static Object compareURLs() throws MalformedURLException { return new URL("http://apidesign.org:8080/wiki/").toExternalForm().toString(); }