rt/emul/mini/src/main/java/java/lang/String.java
changeset 1331 8d9d63f414b5
parent 1310 635ee75d82a5
child 1336 804f6f982f4e
     1.1 --- a/rt/emul/mini/src/main/java/java/lang/String.java	Fri Sep 27 20:20:50 2013 +0200
     1.2 +++ b/rt/emul/mini/src/main/java/java/lang/String.java	Thu Oct 03 14:39:56 2013 +0200
     1.3 @@ -2239,12 +2239,14 @@
     1.4            "var s = this.toString();\n"
     1.5          + "target = target.toString();\n"
     1.6          + "replacement = replacement.toString();\n"
     1.7 +        + "var pos = 0;\n"
     1.8          + "for (;;) {\n"
     1.9 -        + "  var ret = s.replace(target, replacement);\n"
    1.10 -        + "  if (ret === s) {\n"
    1.11 -        + "    return ret;\n"
    1.12 +        + "  var indx = s.indexOf(target, pos);\n"
    1.13 +        + "  if (indx === -1) {\n"
    1.14 +        + "    return s;\n"
    1.15          + "  }\n"
    1.16 -        + "  s = ret;\n"
    1.17 +        + "  pos = indx + replacement.length;\n"
    1.18 +        + "  s = s.substring(0, indx) + replacement + s.substring(indx + target.length);\n"
    1.19          + "}"
    1.20      )
    1.21      public native String replace(CharSequence target, CharSequence replacement);