# HG changeset patch # User Jaroslav Tulach # Date 1359045862 -3600 # Node ID e84419744dbad203a8b75aa86d903dde0f35775f # Parent 62c327a1e23fe5a227c1ecd0d624bd720ac3334d String.compareTo works OK diff -r 62c327a1e23f -r e84419744dba emul/src/main/java/java/lang/String.java --- a/emul/src/main/java/java/lang/String.java Thu Jan 24 17:08:02 2013 +0100 +++ b/emul/src/main/java/java/lang/String.java Thu Jan 24 17:44:22 2013 +0100 @@ -823,7 +823,7 @@ @JavaScriptBody(args = { "beg", "end", "arr", "dst" }, body= "var s = this.toString();\n" + "while (beg < end) {\n" + - " arr[dst++] = s[beg++];\n" + + " arr[dst++] = s.charCodeAt(beg++);\n" + "}\n" ) public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) { diff -r 62c327a1e23f -r e84419744dba vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Thu Jan 24 17:08:02 2013 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Thu Jan 24 17:44:22 2013 +0100 @@ -109,6 +109,10 @@ public static String concatStrings() { return (toStringTest(1) + "\\\n\r\t").toString(); } + + public static int compare(String a, String b) { + return a.compareTo(b); + } @Override public String toString() { diff -r 62c327a1e23f -r e84419744dba vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java --- a/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Thu Jan 24 17:08:02 2013 +0100 +++ b/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Thu Jan 24 17:44:22 2013 +0100 @@ -173,6 +173,16 @@ ); } + + @Test public void compareStrings() throws Exception { + int res = StringSample.compare("Saab", "Volvo"); + assertExec( + "Saab finished sooner than Volvo", + StringSample.class, "compare__ILjava_lang_String_2Ljava_lang_String_2", + Double.valueOf(res), "Saab", "Volvo" + ); + + } private static CharSequence codeSeq; private static Invocable code;