Don't instantiate new object, when only requesting prototype. use CLS(false).
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 29 Nov 2012 22:03:11 +0100
changeset 2247aa36c48c634
parent 220 7c26f96bba59
child 226 907a52ed10e3
Don't instantiate new object, when only requesting prototype. use CLS(false).
vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
     1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Thu Nov 29 11:07:05 2012 +0100
     1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Thu Nov 29 22:03:11 2012 +0100
     1.3 @@ -124,7 +124,7 @@
     1.4          }
     1.5          out.append("\n    return this;");
     1.6          out.append("\n  }");
     1.7 -        out.append("\n  return new CLS;");
     1.8 +        out.append("\n  return arguments[0] ? new CLS() : CLS.prototype;");
     1.9          out.append("\n}");
    1.10          StringBuilder sb = new StringBuilder();
    1.11          for (String init : toInitilize.toArray()) {
    1.12 @@ -140,7 +140,7 @@
    1.13          final String mn = findMethodName(m, argsCnt);
    1.14          out.append(prefix).append(mn).append(" = function");
    1.15          if (mn.equals("classV")) {
    1.16 -            toInitilize.add(className(jc) + "(true)." + mn);
    1.17 +            toInitilize.add(className(jc) + "(false)." + mn);
    1.18          }
    1.19          out.append('(');
    1.20          String space = "";
    1.21 @@ -886,7 +886,7 @@
    1.22          }
    1.23          final String in = mi[0];
    1.24          out.append(in.replace('/', '_'));
    1.25 -        out.append("(true).");
    1.26 +        out.append("(false).");
    1.27          out.append(mn);
    1.28          out.append('(');
    1.29          String sep = "";