Skip to content

Commit f4e31bc

Browse files
committed
Default to this: this and add overrides to exclude
There are only 3 right now.
1 parent 588d6d3 commit f4e31bc

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

inputfiles/overridingTypes.jsonc

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
"mixins": {
33
"mixin": {
44
"MessageEventTarget": {
5-
"overrideThisType": "this",
65
"events": {
76
"event": [
87
{
@@ -41,7 +40,14 @@
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
{

src/build/emitter.ts

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff 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
}

src/build/types.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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[];

0 commit comments

Comments
 (0)