@@ -187,7 +187,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
187
187
}
188
188
else if ( e . deprecated ) {
189
189
htmlDeprecatedResult [ e . name ] = i . name ;
190
- }
190
+ }
191
191
else {
192
192
htmlResult [ e . name ] = i . name ;
193
193
}
@@ -210,16 +210,20 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
210
210
211
211
function getParentsWithEventHandler ( i : Browser . Interface ) {
212
212
function getParentEventHandler ( i : Browser . Interface ) : Browser . Interface [ ] {
213
- return iNameToEhList [ i . name ] && iNameToEhList [ i . name ] . length ? [ i ] : getParentsWithEventHandler ( i ) ;
213
+ const hasEventListener = iNameToEhList [ i . name ] && iNameToEhList [ i . name ] . length ;
214
+ if ( hasEventListener ) {
215
+ return [ i ] ;
216
+ }
217
+ const ehParents = getParentsWithEventHandler ( i ) ;
218
+ if ( ehParents . length > 1 ) {
219
+ return [ i ] ;
220
+ }
221
+ return ehParents ;
214
222
}
215
223
216
224
const extendedParentWithEventHandler = allInterfacesMap [ i . extends ] && getParentEventHandler ( allInterfacesMap [ i . extends ] ) || [ ] ;
217
225
const implementedParentsWithEventHandler = i . implements ? flatMap ( i . implements , i => getParentEventHandler ( allInterfacesMap [ i ] ) ) : [ ] ;
218
226
219
- if ( extendedParentWithEventHandler . length > 1 && implementedParentsWithEventHandler . length === 0 ) {
220
- return [ allInterfacesMap [ i . extends ] ] ;
221
- }
222
-
223
227
return distinct ( extendedParentWithEventHandler . concat ( implementedParentsWithEventHandler ) ) ;
224
228
}
225
229
@@ -1083,7 +1087,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
1083
1087
const iterableGetter = findIterableGetter ( ) ;
1084
1088
const lengthProperty = findLengthProperty ( i ) || findLengthProperty ( allInterfacesMap [ i . extends ] ) ;
1085
1089
if ( iterableGetter && lengthProperty ) {
1086
- return [ convertDomTypeToTsType ( {
1090
+ return [ convertDomTypeToTsType ( {
1087
1091
type : iterableGetter . signature [ 0 ] . type ,
1088
1092
"override-type" : iterableGetter . signature [ 0 ] [ "override-type" ]
1089
1093
} ) ] ;
@@ -1124,7 +1128,7 @@ export function emitWebIDl(webidl: Browser.WebIdl, flavor: Flavor) {
1124
1128
if ( comments && comments [ m . name ] ) {
1125
1129
printer . printLine ( comments [ m . name ] ) ;
1126
1130
}
1127
- printer . printLine ( `${ m . name } (): ${ m . definition } ;` ) ;
1131
+ printer . printLine ( `${ m . name } (): ${ m . definition } ;` ) ;
1128
1132
} ) ;
1129
1133
}
1130
1134
0 commit comments