1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sat Oct 05 07:23:48 2013 +0200
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Fri Oct 11 09:58:03 2013 +0200
1.3 @@ -80,6 +80,7 @@
1.4 }
1.5 InputStream is = loadClass(l, name);
1.6 if (is == null) {
1.7 + lazyReference(out, name);
1.8 skipClass.add(name);
1.9 continue;
1.10 }
1.11 @@ -250,4 +251,16 @@
1.12 String getVMObject() {
1.13 return "vm";
1.14 }
1.15 +
1.16 + private static void lazyReference(Appendable out, String n) throws IOException {
1.17 + String cls = n.replace('/', '_');
1.18 + String dot = n.replace('/', '.');
1.19 +
1.20 + out.append("\nvm.").append(cls).append(" = function() {");
1.21 + out.append("\n var instance = arguments.length == 0 || arguments[0] === true;");
1.22 + out.append("\n delete vm.").append(cls).append(";");
1.23 + out.append("\n var c = vm.loadClass('").append(dot).append("');");
1.24 + out.append("\n return vm.").append(cls).append("(instance);");
1.25 + out.append("\n}");
1.26 + }
1.27 }