rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java
branchclosure
changeset 1083 9d6130cb464f
parent 1029 b1fe994d4267
child 1084 f5c9934a252c
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Fri Apr 26 18:48:34 2013 +0200
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/VM.java	Mon May 06 11:57:29 2013 +0200
     1.3 @@ -20,6 +20,8 @@
     1.4  import java.io.IOException;
     1.5  import java.io.InputStream;
     1.6  import org.apidesign.vm4brwsr.ByteCodeParser.ClassData;
     1.7 +import org.apidesign.vm4brwsr.ByteCodeParser.FieldData;
     1.8 +import org.apidesign.vm4brwsr.ByteCodeParser.MethodData;
     1.9  
    1.10  /** Generator of JavaScript from bytecode of classes on classpath of the VM.
    1.11   *
    1.12 @@ -87,6 +89,33 @@
    1.13          }
    1.14      }
    1.15  
    1.16 +    @Override
    1.17 +    protected void declaredField(FieldData fieldData,
    1.18 +                                 String destObject,
    1.19 +                                 String mangledName) throws IOException {
    1.20 +        if (exportedSymbols.isExported(fieldData)) {
    1.21 +            exportMember(destObject, mangledName);
    1.22 +        }
    1.23 +    }
    1.24 +
    1.25 +    @Override
    1.26 +    protected void declaredMethod(MethodData methodData,
    1.27 +                                  String destObject,
    1.28 +                                  String mangledName) throws IOException {
    1.29 +        if (exportedSymbols.isExported(methodData)) {
    1.30 +            exportMember(destObject, mangledName);
    1.31 +        }
    1.32 +    }
    1.33 +
    1.34 +    private void exportMember(String destObject, String memberName)
    1.35 +            throws IOException {
    1.36 +        out.append("\n").append(destObject).append("['")
    1.37 +                                           .append(memberName)
    1.38 +                                           .append("'] = ")
    1.39 +                        .append(destObject).append(".").append(memberName)
    1.40 +           .append(";\n");
    1.41 +    }
    1.42 +
    1.43      private void generateBody(StringArray names) throws IOException {
    1.44          StringArray processed = new StringArray();
    1.45          StringArray initCode = new StringArray();