1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Tue Jan 26 06:57:30 2016 +0100
1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Sun Mar 20 15:26:19 2016 +0100
1.3 @@ -95,8 +95,11 @@
1.4
1.5 private void doCompile(StringArray names) throws IOException {
1.6 generatePrologue();
1.7 - append(
1.8 - "\n var invoker = {};");
1.9 + append("\n var invoker = {};");
1.10 + append("\n function registerClass(vm, name, fn) {");
1.11 + append("\n if (!vm[name]) vm[name] = fn;");
1.12 + append("\n return vm[name];");
1.13 + append("\n }");
1.14 generateBody(names);
1.15 append(invokerMethods);
1.16
1.17 @@ -147,15 +150,17 @@
1.18 protected abstract void lazyReference(Appendable out, String n) throws IOException;
1.19
1.20 @Override
1.21 - protected final void declaredClass(ClassData classData, String mangledName)
1.22 + protected final void declareClass(ClassData classData, String mangledName)
1.23 throws IOException {
1.24 if (exportedSymbols.isExported(classData)) {
1.25 - append("\n").append(getExportsObject()).append("['")
1.26 + append("registerClass(").append(getExportsObject()).append(",'")
1.27 .append(mangledName)
1.28 - .append("'] = ")
1.29 - .append(accessClass(mangledName))
1.30 - .append(";\n");
1.31 + .append("',")
1.32 + .append(mangledName)
1.33 + .append(")");
1.34 exportedCount++;
1.35 + } else {
1.36 + append(mangledName);
1.37 }
1.38 }
1.39