# HG changeset patch # User Jaroslav Tulach # Date 1365327536 -7200 # Node ID d9e692ece65348a2100c925f59971a67f21d97f4 # Parent 6fe5b2b4b82ede14a8952dcd2860243d9dcd9c57 Need to use toString(), as valueOf() on array returns array diff -r 6fe5b2b4b82e -r d9e692ece653 rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Fri Apr 05 17:55:23 2013 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java Sun Apr 07 11:38:56 2013 +0200 @@ -133,14 +133,16 @@ @JavaScriptBody(args = {}, body = "return [1, 2];") private static native Object crtarr(); - @JavaScriptBody(args = { "o" }, body = "return o.valueOf();") - private static native String valueOf(Object o); + @JavaScriptBody(args = { "o" }, body = "return o.toString();") + private static native String toStrng(Object o); public static String toStringArray(boolean fakeArr, boolean toString) { final Object arr = fakeArr ? crtarr() : new Object[2]; - final String whole = toString ? arr.toString() : valueOf(arr); + final String whole = toString ? arr.toString() : toStrng(arr); int zav = whole.indexOf('@'); - assert zav >= 0 : "There should be @ in: " + whole; + if (zav <= 0) { + zav = whole.length(); + } return whole.substring(0, zav).toString().toString(); } diff -r 6fe5b2b4b82e -r d9e692ece653 rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Fri Apr 05 17:55:23 2013 +0200 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java Sun Apr 07 11:38:56 2013 +0200 @@ -215,12 +215,10 @@ } @Test public void valueOfOnJSArray() throws Exception { - String exp = "[1, 2]"; - assertExec( "Treated as classical JavaScript array", StringSample.class, "toStringArray__Ljava_lang_String_2ZZ", - exp, true, false + "1,2", true, false ); }