@@ -226,6 +226,10 @@ export function emitWebIdl(webidl: Browser.WebIdl, flavor: Flavor) {
226
226
return ehParents ;
227
227
}
228
228
229
+ if ( ! i . name ) {
230
+ throw new Error ( "Unexpected nameless object: " + JSON . stringify ( i ) ) ;
231
+ }
232
+
229
233
const iExtends = i . extends && i . extends . replace ( / < .* > $ / , '' ) ;
230
234
const parentWithEventHandler = allInterfacesMap [ iExtends ] && getParentEventHandler ( allInterfacesMap [ iExtends ] ) || [ ] ;
231
235
const mixinsWithEventHandler = flatMap ( i . implements || [ ] , i => getParentEventHandler ( allInterfacesMap [ i ] ) ) ;
@@ -695,7 +699,7 @@ export function emitWebIdl(webidl: Browser.WebIdl, flavor: Flavor) {
695
699
const value = subtype [ subtype . length - 1 ] ;
696
700
const key = subtype . length > 1 ? subtype [ 0 ] :
697
701
i . iterator . kind === "iterable" ? "number" : value ;
698
- const name = i . name . replace ( / e x t e n d s \w + / , "" ) ;
702
+ const name = i . name + ( i . generic ? `< ${ i . generic . split ( " " ) [ 0 ] } >` : "" ) ;
699
703
printer . printLine ( `forEach(callbackfn: (value: ${ value } , key: ${ key } , parent: ${ name } ) => void, thisArg?: any): void;` ) ;
700
704
}
701
705
@@ -1229,8 +1233,9 @@ export function emitWebIdl(webidl: Browser.WebIdl, flavor: Flavor) {
1229
1233
if ( subtypes ) {
1230
1234
const iteratorExtends = getIteratorExtends ( i . iterator , subtypes ) ;
1231
1235
const name = extendConflictsBaseTypes [ i . name ] ? `${ i . name } Base` : i . name ;
1236
+ const generic = i . generic ? `<${ i . generic } >` : "" ;
1232
1237
printer . printLine ( "" ) ;
1233
- printer . printLine ( `interface ${ name } ${ iteratorExtends } {` ) ;
1238
+ printer . printLine ( `interface ${ name } ${ generic } ${ iteratorExtends } {` ) ;
1234
1239
printer . increaseIndent ( ) ;
1235
1240
if ( ! iteratorExtends ) {
1236
1241
printer . printLine ( `[Symbol.iterator](): IterableIterator<${ stringifySingleOrTupleTypes ( subtypes ) } >;` ) ;
0 commit comments