Don't use .prototype, use (true). Now works for String as well lazy
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 27 Nov 2012 23:01:24 +0100
branchlazy
changeset 209bcbaed2a6627
parent 208 5dff709ae88c
child 210 66b552a2e108
Don't use .prototype, use (true). Now works for String as well
emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js
vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
     1.1 --- a/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Tue Nov 27 22:53:29 2012 +0100
     1.2 +++ b/emul/src/main/resources/org/apidesign/vm4brwsr/emul/java_lang_String.js	Tue Nov 27 23:01:24 2012 +0100
     1.3 @@ -399,8 +399,13 @@
     1.4  var java_lang_String_serialPersistentFields = 0;
     1.5  var java_lang_String_CASE_INSENSITIVE_ORDER = 0;
     1.6  function java_lang_String() {
     1.7 -  /** the real value of this 'string' we delegate to */
     1.8 -  this.r = '';
     1.9 +    if (arguments.length === 0) {
    1.10 +        /** the real value of this 'string' we delegate to */
    1.11 +        this.r = '';
    1.12 +        return this;
    1.13 +    } else {
    1.14 +        return new java_lang_String;
    1.15 +    }
    1.16  }
    1.17  java_lang_String.prototype = new String;
    1.18  java_lang_String.prototype.toString = function() { return this.r; };;
     2.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Nov 27 22:53:29 2012 +0100
     2.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Tue Nov 27 23:01:24 2012 +0100
     2.3 @@ -881,7 +881,7 @@
     2.4          }
     2.5          final String in = mi[0];
     2.6          out.append(in.replace('/', '_'));
     2.7 -        out.append(".prototype.");
     2.8 +        out.append("(true).");
     2.9          out.append(mn);
    2.10          out.append('(');
    2.11          String sep = "";