package abcdump {
  import abcdump.*;
  
  class Traits extends Object {
    /* Static initializer */
    /*
    static public function Traits() {
      return;
    }
     */
    
    var name;
    var init:MethodInfo;
    var itraits:Traits;
    var base;
    var flags:int;
    var protectedNs:Namespace;
    const interfaces:Array;
    const names:Object;
    const slots:Array;
    const methods:Array;
    const members:Array;
    
    public function Traits() {
      this.interfaces = [  ];
      this.names = {  };
      this.slots = [  ];
      this.methods = [  ];
      this.members = [  ];
      /* Well, this is embarassing.
      
      Stage `expression' failed at:
      (28:construct-super
        (27:get-local 0))
       */
    }
    
    public function toString():String {
      return String(this.name);
    }
    
    public function dump(param0:Abc, param1:String, param2:String = "") {
      var local0:* = undefined;
      var local1:int = 0;
      var local2:* = this.members;
      /* 'Ouch!' cried I, then died.
      RuntimeError: no jumps yet :/
          /home/whitequark/furnace-avm2/lib/furnace-avm2/abc/decompiler.rb:442:in `expr_jump'
          /home/whitequark/furnace-avm2/lib/furnace-avm2/abc/decompiler.rb:83:in `expression'
          /home/whitequark/furnace-avm2/lib/furnace-avm2/abc/decompiler.rb:72:in `block in on_expression'
          /home/whitequark/furnace-avm2/lib/furnace-avm2/abc/decompiler.rb:71:in `catch'
          /home/whitequark/furnace-avm2/lib/furnace-avm2/abc/decompiler.rb:71:in `on_expression'
          /home/whitequark/furnace-avm2/lib/furnace-avm2/abc/decompiler.rb:22:in `decompile'
            ... et cetera
       */
    }
    
  }
}

Package
  PackageName                                      ; package ... 
    NamespaceName                                  ; abcdump
  Scope                                            ; { ... }
    Import                                         ; import ... .*;
      NamespaceName                                ; abcdump
    Newline                                          <whitespace>
    Class
      ClassSpecifiers                              ; 
      ClassName                                    ; class ... 
        Multiname                                  ; Traits
      ClassInheritance                             ; extends ... 
        Multiname                                  ; Object
      Scope                                        ; { ... }
        Comment                                    ; 
        Comment                                    ; 
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; var ... 
            Multiname                              ; name
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; var ... 
            Multiname                              ; init
          Type                                     ; : ... 
            Multiname                              ; MethodInfo
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; var ... 
            Multiname                              ; itraits
          Type                                     ; : ... 
            Multiname                              ; Traits
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; var ... 
            Multiname                              ; base
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; var ... 
            Multiname                              ; flags
          Type                                     ; : ... 
            Multiname                              ; int
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; var ... 
            Multiname                              ; protectedNs
          Type                                     ; : ... 
            Multiname                              ; Namespace
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; const ... 
            Multiname                              ; interfaces
          Type                                     ; : ... 
            Multiname                              ; Array
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; const ... 
            Multiname                              ; names
          Type                                     ; : ... 
            Multiname                              ; Object
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; const ... 
            Multiname                              ; slots
          Type                                     ; : ... 
            Multiname                              ; Array
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; const ... 
            Multiname                              ; methods
          Type                                     ; : ... 
            Multiname                              ; Array
        Slot                                       ;  ... ;
          Specifiers                               ; 
          SlotName                                 ; const ... 
            Multiname                              ; members
          Type                                     ; : ... 
            Multiname                              ; Array
        Newline                                      <whitespace>
        Constructor                                ;  ... 
          ConstructorSpecifiers                    ; public 
          FunctionName                             ; function ... 
            Multiname                              ; Traits
          Arguments                                ; ( , , , )
          FunctionBody                               <whitespace>
            Statement                              ;  ... ;
              Assignment                           ;  = = = 
                Access                             ;  . . . 
                  VariableName                     ; this
                  PropertyName                     ; interfaces
                Array                              ; [ , , , ]
            Statement                              ;  ... ;
              Assignment                           ;  = = = 
                Access                             ;  . . . 
                  VariableName                     ; this
                  PropertyName                     ; names
                Object                             ; { , , , }
            Statement                              ;  ... ;
              Assignment                           ;  = = = 
                Access                             ;  . . . 
                  VariableName                     ; this
                  PropertyName                     ; slots
                Array                              ; [ , , , ]
            Statement                              ;  ... ;
              Assignment                           ;  = = = 
                Access                             ;  . . . 
                  VariableName                     ; this
                  PropertyName                     ; methods
                Array                              ; [ , , , ]
            Statement                              ;  ... ;
              Assignment                           ;  = = = 
                Access                             ;  . . . 
                  VariableName                     ; this
                  PropertyName                     ; members
                Array                              ; [ , , , ]
            Comment                                ; 
        Method                                     ;  ... 
          MethodSpecifiers                         ; public 
          FunctionName                             ; function ... 
            Multiname                              ; toString
          Arguments                                ; ( , , , )
          Type                                     ; : ... 
            Multiname                              ; String
          FunctionBody                               <whitespace>
            Return                                 ; return ... ;
              Call
                PropertyName                       ; String
                Arguments                          ; ( , , , )
                  Access                           ;  . . . 
                    VariableName                   ; this
                    PropertyName                   ; name
        Method                                     ;  ... 
          MethodSpecifiers                         ; public 
          FunctionName                             ; function ... 
            Multiname                              ; dump
          Arguments                                ; ( , , , )
            ArgumentDeclaration
              VariableName                         ; param0
              Type                                 ; : ... 
                Multiname                          ; Abc
            ArgumentDeclaration
              VariableName                         ; param1
              Type                                 ; : ... 
                Multiname                          ; String
            ArgumentDeclaration
              VariableName                         ; param2
              Type                                 ; : ... 
                Multiname                          ; String
              Initialization                       ;  = ... 
                Immediate                          ; ""
          FunctionBody                               <whitespace>
            LocalVariable                          ; var ... ;
              VariableName                         ; local0
              Type                                 ; : ... 
                ImmediateTypename                  ; *
              Initialization                       ;  = ... 
                Immediate                          ; undefined
            LocalVariable                          ; var ... ;
              VariableName                         ; local1
              Type                                 ; : ... 
                ImmediateTypename                  ; int
              Initialization                       ;  = ... 
                Immediate                          ; 0
            LocalVariable                          ; var ... ;
              VariableName                         ; local2
              Type                                 ; : ... 
                ImmediateTypename                  ; *
              Initialization                       ;  = ... 
                Access                             ;  . . . 
                  VariableName                     ; this
                  PropertyName                     ; members
            Comment                                ;