1.1 --- a/rt/emul/mini/src/main/java/java/lang/String.java Thu Apr 04 06:12:36 2013 +0200
1.2 +++ b/rt/emul/mini/src/main/java/java/lang/String.java Thu Apr 04 09:46:06 2013 +0200
1.3 @@ -2220,9 +2220,19 @@
1.4 * <code>replacement</code> is <code>null</code>.
1.5 * @since 1.5
1.6 */
1.7 - public String replace(CharSequence target, CharSequence replacement) {
1.8 - throw new UnsupportedOperationException("This one should be supported, but without dep on rest of regexp");
1.9 - }
1.10 + @JavaScriptBody(args = { "target", "replacement" }, body =
1.11 + "var s = this.toString();\n"
1.12 + + "target = target.toString();\n"
1.13 + + "replacement = replacement.toString();\n"
1.14 + + "for (;;) {\n"
1.15 + + " var ret = s.replace(target, replacement);\n"
1.16 + + " if (ret === s) {\n"
1.17 + + " return ret;\n"
1.18 + + " }\n"
1.19 + + " s = ret;\n"
1.20 + + "}"
1.21 + )
1.22 + public native String replace(CharSequence target, CharSequence replacement);
1.23
1.24 /**
1.25 * Splits this string around matches of the given
2.1 --- a/rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Thu Apr 04 06:12:36 2013 +0200
2.2 +++ b/rt/vmtest/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Thu Apr 04 09:46:06 2013 +0200
2.3 @@ -149,6 +149,18 @@
2.4 public int stringToBytesLenght() throws UnsupportedEncodingException {
2.5 return "\u017dlu\u0165ou\u010dk\u00fd k\u016f\u0148".getBytes("utf8").length;
2.6 }
2.7 +
2.8 + @Compare public String replaceSeq() {
2.9 + return "Hello World.".replace(".", "!");
2.10 + }
2.11 + @Compare public String replaceSeqAll() {
2.12 + return "Hello World! Hello World.".replace("World", "Jarda");
2.13 + }
2.14 + @Compare public String replaceSeqAA() {
2.15 + String res = "aaa".replace("aa", "b");
2.16 + assert res.equals("ba") : "Expecting ba: " + res;
2.17 + return res;
2.18 + }
2.19
2.20 @Factory
2.21 public static Object[] create() {