diff -r a6a23aa7a546 -r 81f6e7778135 vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java --- a/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java Thu Dec 06 16:11:48 2012 +0100 +++ b/vm/src/main/java/org/apidesign/vm4brwsr/GenJS.java Thu Dec 06 21:31:09 2012 +0100 @@ -44,6 +44,8 @@ new GenJS(out).doCompile(l, names); } protected void doCompile(ClassLoader l, StringArray names) throws IOException { + out.append("(function VM(global) {"); + out.append("\n var vm = {};"); StringArray processed = new StringArray(); StringArray initCode = new StringArray(); for (String baseClass : names.toArray()) { @@ -109,8 +111,12 @@ initCode.toArray()[indx] = ""; } } - } + out.append( + " global.bck2brwsr = function() { return {\n" + + " loadClass : function(name) { return vm[name](true); }\n" + + " };\n};\n"); + out.append("}(this));"); } private static void readResource(InputStream emul, Appendable out) throws IOException { try { @@ -195,4 +201,14 @@ protected void requireScript(String resourcePath) { scripts.add(resourcePath); } + + @Override + String assignClass(String className) { + return "vm." + className + " = "; + } + + @Override + String accessClass(String className) { + return "vm." + className; + } }