rt/emul/mini/src/main/java/java/lang/String.java
branchmodel
changeset 926 e5fe6bfca579
parent 787 86fa8cc5a44e
child 1082 977cc6141083
child 1272 3ee4ec9577bc
     1.1 --- a/rt/emul/mini/src/main/java/java/lang/String.java	Wed Feb 27 23:40:18 2013 +0100
     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