vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java
branchlazyvm
changeset 274 81f6e7778135
parent 272 a6a23aa7a546
child 276 aeb9fe11cd60
     1.1 --- a/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java	Thu Dec 06 16:11:48 2012 +0100
     1.2 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java	Thu Dec 06 21:31:09 2012 +0100
     1.3 @@ -44,6 +44,8 @@
     1.4          new GenJS(out).doCompile(l, names);
     1.5      }
     1.6      protected void doCompile(ClassLoader l, StringArray names) throws IOException {
     1.7 +        out.append("(function VM(global) {");
     1.8 +        out.append("\n  var vm = {};");
     1.9          StringArray processed = new StringArray();
    1.10          StringArray initCode = new StringArray();
    1.11          for (String baseClass : names.toArray()) {
    1.12 @@ -109,8 +111,12 @@
    1.13                      initCode.toArray()[indx] = "";
    1.14                  }
    1.15              }
    1.16 -
    1.17          }
    1.18 +        out.append(
    1.19 +              "  global.bck2brwsr = function() { return {\n"
    1.20 +            + "    loadClass : function(name) { return vm[name](true); }\n"
    1.21 +            + "  };\n};\n");
    1.22 +        out.append("}(this));");
    1.23      }
    1.24      private static void readResource(InputStream emul, Appendable out) throws IOException {
    1.25          try {
    1.26 @@ -195,4 +201,14 @@
    1.27      protected void requireScript(String resourcePath) {
    1.28          scripts.add(resourcePath);
    1.29      }
    1.30 +
    1.31 +    @Override
    1.32 +    String assignClass(String className) {
    1.33 +        return "vm." + className + " = ";
    1.34 +    }
    1.35 +    
    1.36 +    @Override
    1.37 +    String accessClass(String className) {
    1.38 +        return "vm." + className;
    1.39 +    }
    1.40  }