# HG changeset patch # User Jaroslav Tulach # Date 1362004818 -3600 # Node ID 86fa8cc5a44e04bb4d4e5c552e6ac66e5f2add9b # Parent d014c9d78b46f12a4a217f6bdda041cb3c441225 Placing the toString and valueOf methods into java.lang.String prototype diff -r d014c9d78b46 -r 86fa8cc5a44e rt/emul/mini/src/main/java/java/lang/String.java --- a/rt/emul/mini/src/main/java/java/lang/String.java Wed Feb 27 21:45:41 2013 +0100 +++ b/rt/emul/mini/src/main/java/java/lang/String.java Wed Feb 27 23:40:18 2013 +0100 @@ -115,15 +115,17 @@ /** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = -6849794470754667710L; + + static { + registerToString(); + } + @JavaScriptBody(args = {}, body = + "var p = vm.java_lang_String(false);\n" + + "p.toString = function() {\nreturn this._r().toString();\n};\n" + + "p.valueOf = function() {\nreturn this._r().valueOf();\n}\n" + ) + private static native void registerToString(); - @JavaScriptOnly(name="toString", value="String.prototype._r") - private static void jsToString() { - } - - @JavaScriptOnly(name="valueOf", value="function() { return this.toString().valueOf(); }") - private static void jsValudOf() { - } - /** * Class String is special cased within the Serialization Stream Protocol. *