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 ;