interface Transaction { readonly attribute Account from; readonly attribute Account to; readonly attribute float amount; readonly attribute DOMString description; readonly attribute unsigned long number; [Default] object toJSON(); }; interface Account { attribute DOMString name; attribute unsigned long number; 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; }; interface Account2 { attribute DOMString name; attribute unsigned long number; }; interface Account3 { attribute DOMString name; attribute unsigned long number; }; interface Account4 { getter object getItem(unsigned long index); }; interface Account5 : Account { attribute DOMString secondname; }; interface Account6 : Account { attribute DOMString secondname; }; interface Account7 { attribute DOMString name; attribute unsigned long number; }; interface Account8 { getter object getItem(unsigned long index); };