|  | interface Transaction { | 
|  | readonly attribute Account from; | 
|  | readonly attribute Account to; | 
|  | readonly attribute float amount; | 
|  | readonly attribute DOMString description; | 
|  | readonly attribute unsigned long number; | 
|  |  | 
|  | serializer; | 
|  | }; | 
|  |  | 
|  | interface Account { | 
|  | attribute DOMString name; | 
|  | attribute unsigned long number; | 
|  | serializer DOMString serialize(); | 
|  | }; | 
|  |  | 
|  | interface Transaction2 { | 
|  | readonly attribute Account2 from; | 
|  | readonly attribute Account2 to; | 
|  | readonly attribute float amount; | 
|  | readonly attribute DOMString description; | 
|  | readonly attribute unsigned long number; | 
|  |  | 
|  | serializer = { from, to, amount, description }; | 
|  | }; | 
|  |  | 
|  | interface Account2 { | 
|  | attribute DOMString name; | 
|  | attribute unsigned long number; | 
|  | serializer = number; | 
|  | }; | 
|  |  | 
|  | interface Account3 { | 
|  | attribute DOMString name; | 
|  | attribute unsigned long number; | 
|  |  | 
|  | serializer = { attribute }; | 
|  | }; | 
|  |  | 
|  | interface Account4 { | 
|  | getter object getItem(unsigned long index); | 
|  | serializer = { getter }; | 
|  | }; | 
|  |  | 
|  | interface Account5 : Account { | 
|  | attribute DOMString secondname; | 
|  | serializer = { inherit, secondname }; | 
|  | }; | 
|  |  | 
|  | interface Account6 : Account { | 
|  | attribute DOMString secondname; | 
|  | serializer = { inherit, attribute }; | 
|  | }; | 
|  |  | 
|  | interface Account7 { | 
|  | attribute DOMString name; | 
|  | attribute unsigned long number; | 
|  | serializer = [ name, number ]; | 
|  | }; | 
|  |  | 
|  | interface Account8 { | 
|  | getter object getItem(unsigned long index); | 
|  | serializer = [ getter ]; | 
|  | }; |