File tree Expand file tree Collapse file tree 3 files changed +14
-11
lines changed
Expand file tree Collapse file tree 3 files changed +14
-11
lines changed Original file line number Diff line number Diff line change 22 "mixins" : {
33 "mixin" : {
44 "MessageEventTarget" : {
5- "overrideThisType" : " this" ,
65 "events" : {
76 "event" : [
87 {
4140 }
4241 }
4342 },
43+ "AbstractWorker" : {
44+ "concreteThisParameter" : true
45+ },
46+ "WindowEventHandlers" : {
47+ "concreteThisParameter" : true
48+ },
4449 "GlobalEventHandlers" : {
50+ "concreteThisParameter" : true ,
4551 "events" : {
4652 "event" : [
4753 {
Original file line number Diff line number Diff line change @@ -768,15 +768,12 @@ export function emitWebIdl(
768768 . forEach ( emitEnum ) ;
769769 }
770770
771- function emitEventHandlerThis (
772- overrideThisType : string | undefined ,
773- prefix : string ,
774- i : Browser . Interface ,
775- ) {
771+ function emitEventHandlerThis ( prefix : string , i : Browser . Interface ) {
776772 if ( prefix === "" ) {
777- return overrideThisType
778- ? `this: ${ overrideThisType } , `
779- : `this: ${ nameWithForwardedTypes ( i ) } , ` ;
773+ if ( i . mixin && ! i . concreteThisParameter ) {
774+ return `this: this, ` ;
775+ }
776+ return `this: ${ nameWithForwardedTypes ( i ) } , ` ;
780777 } else {
781778 return polluter ? `this: ${ polluter . name } , ` : "" ;
782779 }
@@ -821,7 +818,7 @@ export function emitWebIdl(
821818 const eType = p . eventHandler
822819 ? getEventTypeInInterface ( p . eventHandler ! , i )
823820 : "Event" ;
824- pType = `(${ emitEventHandlerThis ( i . overrideThisType , prefix , i ) } ev: ${ eType } ) => any` ;
821+ pType = `(${ emitEventHandlerThis ( prefix , i ) } ev: ${ eType } ) => any` ;
825822 if ( typeof p . type === "string" && ! p . type . endsWith ( "NonNull" ) ) {
826823 pType = `(${ pType } ) | null` ;
827824 }
Original file line number Diff line number Diff line change @@ -181,7 +181,7 @@ export interface Interface {
181181 overrideExposed ?: string ;
182182 tags ?: string ;
183183 "implicit-this" ?: 1 ;
184- overrideThisType ?: string ;
184+ concreteThisParameter ?: boolean ;
185185 noInterfaceObject ?: boolean ;
186186 global ?: string ;
187187 typeParameters ?: TypeParameter [ ] ;
You can’t perform that action at this time.
0 commit comments