rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java
changeset 1727 86e61729f754
parent 1725 489fe829817f
child 1754 ff4983098f3f
     1.1 --- a/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Nov 23 17:05:32 2014 +0100
     1.2 +++ b/rt/vm/src/main/java/org/apidesign/vm4brwsr/ByteCodeToJavaScript.java	Sun Nov 23 21:55:46 2014 +0100
     1.3 @@ -296,6 +296,21 @@
     1.4          append(accessClass("java_lang_Class(true);"));
     1.5          append("\n    CLS.$class.jvmName = '").append(cn).append("';");
     1.6          append("\n    CLS.$class.superclass = sprcls;");
     1.7 +        append("\n    CLS.$class.interfaces = function() { return [");
     1.8 +        {
     1.9 +            boolean first = true;
    1.10 +            for (String intrfc : jc.getSuperInterfaces()) {
    1.11 +                if (!first) {
    1.12 +                    append(",");
    1.13 +                }
    1.14 +                requireReference(intrfc);
    1.15 +                String mangledIface = mangleClassName(intrfc);
    1.16 +                append("\n        ");
    1.17 +                append(accessClass(mangledIface)).append("(false).constructor.$class");
    1.18 +                first = false;
    1.19 +            }
    1.20 +        }
    1.21 +        append("\n    ]; };");
    1.22          append("\n    CLS.$class.access = ").append(jc.getAccessFlags()+";");
    1.23          append("\n    CLS.$class.cnstr = CLS;");
    1.24          byte[] classAnno = jc.findAnnotationData(false);