Need to use toString(), as valueOf() on array returns array model
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Sun, 07 Apr 2013 11:38:56 +0200
branchmodel
changeset 937d9e692ece653
parent 936 6fe5b2b4b82e
child 938 0eec1b51c13c
Need to use toString(), as valueOf() on array returns array
rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java
rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java
     1.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java	Fri Apr 05 17:55:23 2013 +0200
     1.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringSample.java	Sun Apr 07 11:38:56 2013 +0200
     1.3 @@ -133,14 +133,16 @@
     1.4      
     1.5      @JavaScriptBody(args = {}, body = "return [1, 2];")
     1.6      private static native Object crtarr();
     1.7 -    @JavaScriptBody(args = { "o" }, body = "return o.valueOf();")
     1.8 -    private static native String valueOf(Object o);
     1.9 +    @JavaScriptBody(args = { "o" }, body = "return o.toString();")
    1.10 +    private static native String toStrng(Object o);
    1.11      
    1.12      public static String toStringArray(boolean fakeArr, boolean toString) {
    1.13          final Object arr = fakeArr ? crtarr() : new Object[2];
    1.14 -        final String whole = toString ? arr.toString() : valueOf(arr);
    1.15 +        final String whole = toString ? arr.toString() : toStrng(arr);
    1.16          int zav = whole.indexOf('@');
    1.17 -        assert zav >= 0 : "There should be @ in: " + whole;
    1.18 +        if (zav <= 0) {
    1.19 +            zav = whole.length();
    1.20 +        }
    1.21          return whole.substring(0, zav).toString().toString();
    1.22      }
    1.23      
     2.1 --- a/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java	Fri Apr 05 17:55:23 2013 +0200
     2.2 +++ b/rt/vm/src/test/java/org/apidesign/vm4brwsr/StringTest.java	Sun Apr 07 11:38:56 2013 +0200
     2.3 @@ -215,12 +215,10 @@
     2.4      }
     2.5  
     2.6      @Test public void valueOfOnJSArray() throws Exception {
     2.7 -        String exp = "[1, 2]";
     2.8 -        
     2.9          assertExec(
    2.10              "Treated as classical JavaScript array",
    2.11              StringSample.class, "toStringArray__Ljava_lang_String_2ZZ",
    2.12 -            exp, true, false
    2.13 +            "1,2", true, false
    2.14          );
    2.15      }
    2.16