diff -r 6e9328ca3462 -r 9839e9a75bcf emul/mini/src/main/java/java/lang/String.java --- a/emul/mini/src/main/java/java/lang/String.java Wed Jan 30 09:32:05 2013 +0100 +++ b/emul/mini/src/main/java/java/lang/String.java Wed Jan 30 14:03:49 2013 +0100 @@ -201,6 +201,10 @@ * If the {@code offset} and {@code count} arguments index * characters outside the bounds of the {@code value} array */ + public String(char value[], int offset, int count) { + initFromCharArray(value, offset, count); + } + @JavaScriptBody(args = { "charArr", "off", "cnt" }, body = "var up = off + cnt;\n" + "for (var i = off; i < up; i++) {\n" + @@ -208,8 +212,7 @@ "}\n" + "this._r(charArr.slice(off, up).join(\"\"));\n" ) - public String(char value[], int offset, int count) { - } + private native void initFromCharArray(char value[], int offset, int count); /** * Allocates a new {@code String} that contains characters from a subarray @@ -555,7 +558,7 @@ int ch = nextChar(bytes, at); v[chlen++] = (char)ch; } - this.r = new String(v, 0, chlen); + initFromCharArray(v, 0, chlen); } /**