# HG changeset patch # User Jaroslav Tulach # Date 1354053684 -3600 # Node ID bcbaed2a6627804fc2f92fb01dc1c9fd8dae81d7 # Parent 5dff709ae88ca8f2e3a592a7b1e83cf49a60a42c Don't use .prototype, use (true). Now works for String as well diff -r 5dff709ae88c -r bcbaed2a6627 emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Tue Nov 27 22:53:29 2012 +0100 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js Tue Nov 27 23:01:24 2012 +0100 @@ -399,8 +399,13 @@ var java_lang_String_serialPersistentFields = 0; var java_lang_String_CASE_INSENSITIVE_ORDER = 0; function java_lang_String() { - /** the real value of this 'string' we delegate to */ - this.r = ''; + if (arguments.length === 0) { + /** the real value of this 'string' we delegate to */ + this.r = ''; + return this; + } else { + return new java_lang_String; + } } java_lang_String.prototype = new String; java_lang_String.prototype.toString = function() { return this.r; };; diff -r 5dff709ae88c -r bcbaed2a6627 vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Nov 27 22:53:29 2012 +0100 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java Tue Nov 27 23:01:24 2012 +0100 @@ -881,7 +881,7 @@ } final String in = mi[0]; out.append(in.replace('/', '_')); - out.append(".prototype."); + out.append("(true)."); out.append(mn); out.append('('); String sep = "";