1.1 --- a/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Thu Oct 03 14:35:09 2013 +0200
1.2 +++ b/rt/emul/compact/src/test/java/org/apidesign/bck2brwsr/tck/CompareStringsTest.java Thu Oct 03 14:39:56 2013 +0200
1.3 @@ -162,6 +162,10 @@
1.4 return res;
1.5 }
1.6
1.7 + @Compare public String replaceWithItself() {
1.8 + return "org.apidesign.bck2brwsr.core.JavaScriptBody".replace(".", "\\.");
1.9 + }
1.10 +
1.11 @Factory
1.12 public static Object[] create() {
1.13 return VMTest.create(CompareStringsTest.class);
2.1 --- a/rt/emul/mini/src/main/java/java/lang/String.java Thu Oct 03 14:35:09 2013 +0200
2.2 +++ b/rt/emul/mini/src/main/java/java/lang/String.java Thu Oct 03 14:39:56 2013 +0200
2.3 @@ -2239,12 +2239,14 @@
2.4 "var s = this.toString();\n"
2.5 + "target = target.toString();\n"
2.6 + "replacement = replacement.toString();\n"
2.7 + + "var pos = 0;\n"
2.8 + "for (;;) {\n"
2.9 - + " var ret = s.replace(target, replacement);\n"
2.10 - + " if (ret === s) {\n"
2.11 - + " return ret;\n"
2.12 + + " var indx = s.indexOf(target, pos);\n"
2.13 + + " if (indx === -1) {\n"
2.14 + + " return s;\n"
2.15 + " }\n"
2.16 - + " s = ret;\n"
2.17 + + " pos = indx + replacement.length;\n"
2.18 + + " s = s.substring(0, indx) + replacement + s.substring(indx + target.length);\n"
2.19 + "}"
2.20 )
2.21 public native String replace(CharSequence target, CharSequence replacement);