             return this[target] = "L" + (++count)
         }
     }
+
+    class ExceptionInfo
+    {
+        var from:int
+        var to:int
+        var target:int
+        var type
+        var name
+    }
     
     class MethodInfo extends MemberInfo
     {

                    data.readBytes(m.code, 0, code_length)
                }
                var ex_count = readU32()
                for (var j:int = 0; j < ex_count; j++)
                {
                    var from = readU32()
                    var to = readU32()
                    var target = readU32()
                    var type = names[readU32()]
                    //print("magic " + magic.toString(16))
                    //if (magic >= (46<<16|16))
                        var name = names[readU32()];
                    infoPrint("exception method_id=" + i + " [" + from + ", " + to + "] " + type + " -> " + target)
                }
                parseTraits(m.activation = new Traits)
            }

                    opSizes[opcode] = int(opSizes[opcode]) + size
                    dumpPrint(s)
                }
                if (exceptions) {
                    for each (var ex in exceptions)
                        dumpPrint(indent + "// handler [" + ex.from + ", " + ex.to + "] -> " + ex.target +
                            (ex.name ? (" " + ex.name + ":" + ex.type) : (" :" + ex.type)));
                }
                dumpPrint(oldindent+"}\n")
            }
            
