diff -r b1fe994d4267 -r 9d6130cb464f rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Fri Apr 26 18:48:34 2013 +0200 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java Mon May 06 11:57:29 2013 +0200 @@ -20,6 +20,8 @@ import java.io.IOException; import java.io.InputStream; import org.apidesign.vm4brwsr.ByteCodeParser.ClassData; +import org.apidesign.vm4brwsr.ByteCodeParser.FieldData; +import org.apidesign.vm4brwsr.ByteCodeParser.MethodData; /** Generator of JavaScript from bytecode of classes on classpath of the VM. * @@ -87,6 +89,33 @@ } } + @Override + protected void declaredField(FieldData fieldData, + String destObject, + String mangledName) throws IOException { + if (exportedSymbols.isExported(fieldData)) { + exportMember(destObject, mangledName); + } + } + + @Override + protected void declaredMethod(MethodData methodData, + String destObject, + String mangledName) throws IOException { + if (exportedSymbols.isExported(methodData)) { + exportMember(destObject, mangledName); + } + } + + private void exportMember(String destObject, String memberName) + throws IOException { + out.append("\n").append(destObject).append("['") + .append(memberName) + .append("'] = ") + .append(destObject).append(".").append(memberName) + .append(";\n"); + } + private void generateBody(StringArray names) throws IOException { StringArray processed = new StringArray(); StringArray initCode = new StringArray();