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 ]; };