# HG changeset patch # User Jaroslav Tulach # Date 1353272324 -3600 # Node ID 51d08c49e9b6f620056d59b1f0909a2f69757da0 # Parent 391a5d25c0e1e052303d3b2f480b4eaec2e8716e ByteCodeToJavaScript can run insided bck2brwsr VM diff -r 391a5d25c0e1 -r 51d08c49e9b6 emul/src/main/java/java/lang/AbstractStringBuilder.java --- a/emul/src/main/java/java/lang/AbstractStringBuilder.java Sun Nov 18 19:54:40 2012 +0100 +++ b/emul/src/main/java/java/lang/AbstractStringBuilder.java Sun Nov 18 21:58:44 2012 +0100 @@ -1417,7 +1417,7 @@ static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) { while (count-- > 0) { - dst[dstBegin++] = value[srcBegin++]; + dst[dstBegin + count] = value[srcBegin + count]; } } diff -r 391a5d25c0e1 -r 51d08c49e9b6 vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Sun Nov 18 19:54:40 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Sun Nov 18 21:58:44 2012 +0100 @@ -60,6 +60,13 @@ return s.replace(a, b); } + public static String insertBuffer() { + StringBuilder sb = new StringBuilder(); + sb.append("Jardo!"); + sb.insert(0, "Ahoj "); + return sb.toString().toString(); + } + public static int countAB(String txt) { int cnt = 0; for (int i = 0; i < txt.length(); i++) { diff -r 391a5d25c0e1 -r 51d08c49e9b6 vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Sun Nov 18 19:54:40 2012 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Sun Nov 18 21:58:44 2012 +0100 @@ -108,6 +108,14 @@ "x_y_z", "x/y/z", (int)'/', (int)'_' ); } + + @Test public void insertBuilder() throws Exception { + assertExec( + "Can insert something into a buffer?", + "org_apidesign_vm4brwsr_StringSample_insertBufferLjava_lang_String", + "Ahoj Jardo!" + ); + } @Test public void countAB() throws Exception { assertEquals(StringSample.countAB("Ahoj Bedo!"), 3, "Verify Java code is sane");