emul/mini/src/main/java/java/lang/String.java
branchemul
changeset 611 9839e9a75bcf
parent 608 6e9328ca3462
child 670 3026d9c844f0
     1.1 --- a/emul/mini/src/main/java/java/lang/String.java	Wed Jan 30 09:32:05 2013 +0100
     1.2 +++ b/emul/mini/src/main/java/java/lang/String.java	Wed Jan 30 14:03:49 2013 +0100
     1.3 @@ -201,6 +201,10 @@
     1.4       *          If the {@code offset} and {@code count} arguments index
     1.5       *          characters outside the bounds of the {@code value} array
     1.6       */
     1.7 +    public String(char value[], int offset, int count) {
     1.8 +        initFromCharArray(value, offset, count);
     1.9 +    }
    1.10 +    
    1.11      @JavaScriptBody(args = { "charArr", "off", "cnt" }, body =
    1.12          "var up = off + cnt;\n" +
    1.13          "for (var i = off; i < up; i++) {\n" +
    1.14 @@ -208,8 +212,7 @@
    1.15          "}\n" +
    1.16          "this._r(charArr.slice(off, up).join(\"\"));\n"
    1.17      )
    1.18 -    public String(char value[], int offset, int count) {
    1.19 -    }
    1.20 +    private native void initFromCharArray(char value[], int offset, int count);
    1.21  
    1.22      /**
    1.23       * Allocates a new {@code String} that contains characters from a subarray
    1.24 @@ -555,7 +558,7 @@
    1.25              int ch = nextChar(bytes, at);
    1.26              v[chlen++] = (char)ch;
    1.27          }
    1.28 -        this.r = new String(v, 0, chlen);
    1.29 +        initFromCharArray(v, 0, chlen);
    1.30      }
    1.31  
    1.32      /**