From 0dc24aab899c633e0684946d8d381ceea8d42de3 Mon Sep 17 00:00:00 2001 From: dandalf Date: Tue, 23 Sep 2025 21:07:32 -0600 Subject: [PATCH 1/8] added overriding type to dom lib --- baselines/dom.generated.d.ts | 5 +++-- baselines/ts5.5/dom.generated.d.ts | 5 +++-- baselines/ts5.6/dom.generated.d.ts | 5 +++-- inputfiles/addedTypes.jsonc | 6 ++++++ inputfiles/knownTypes.json | 1 + inputfiles/patches/events.kdl | 2 +- src/build/expose.ts | 4 +++- src/build/types.ts | 1 + 8 files changed, 21 insertions(+), 8 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index c96bb81bd..14743b68a 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -15071,7 +15071,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: OnErrorEventHandler; + onerror: DocumentOrGlobalOnErrorHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41635,7 +41635,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: OnErrorEventHandler; +declare var onerror: DocumentOrGlobalOnErrorHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41912,6 +41912,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; +type DocumentOrGlobalOnErrorHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; diff --git a/baselines/ts5.5/dom.generated.d.ts b/baselines/ts5.5/dom.generated.d.ts index fc1d93ece..ce28653c6 100644 --- a/baselines/ts5.5/dom.generated.d.ts +++ b/baselines/ts5.5/dom.generated.d.ts @@ -15057,7 +15057,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: OnErrorEventHandler; + onerror: DocumentOrGlobalOnErrorHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41609,7 +41609,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: OnErrorEventHandler; +declare var onerror: DocumentOrGlobalOnErrorHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41886,6 +41886,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; +type DocumentOrGlobalOnErrorHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; diff --git a/baselines/ts5.6/dom.generated.d.ts b/baselines/ts5.6/dom.generated.d.ts index 743813310..02c7a805c 100644 --- a/baselines/ts5.6/dom.generated.d.ts +++ b/baselines/ts5.6/dom.generated.d.ts @@ -15068,7 +15068,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: OnErrorEventHandler; + onerror: DocumentOrGlobalOnErrorHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41632,7 +41632,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: OnErrorEventHandler; +declare var onerror: DocumentOrGlobalOnErrorHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41909,6 +41909,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; +type DocumentOrGlobalOnErrorHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index 0df5c62c0..86c07ad8c 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -846,6 +846,12 @@ // Full spec at https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill. "name": "AutoFill", "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" + }, + { + "name": "DocumentOrGlobalOnErrorHandler", + "nullable": true, + "overrideType": "((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull", + "exposed": "Window" } ] } diff --git a/inputfiles/knownTypes.json b/inputfiles/knownTypes.json index d0ba44099..092031fb5 100644 --- a/inputfiles/knownTypes.json +++ b/inputfiles/knownTypes.json @@ -21,6 +21,7 @@ "CompositeOperationOrAuto", "ComputedKeyframe", "DisplayCaptureSurfaceType", + "DocumentOrGlobalOnErrorHandler", "EcdhKeyDeriveParams", "EcdsaParams", "EcKeyAlgorithm", diff --git a/inputfiles/patches/events.kdl b/inputfiles/patches/events.kdl index 504f6d0ed..f4bc663ee 100644 --- a/inputfiles/patches/events.kdl +++ b/inputfiles/patches/events.kdl @@ -74,7 +74,7 @@ interface-mixin GlobalEventHandlers { event transitionstart type=TransitionEvent event transitionend type=TransitionEvent event transitioncancel type=TransitionEvent - property onerror overrideType=OnErrorEventHandler + property onerror overrideType=DocumentOrGlobalOnErrorHandler } interface-mixin MessageEventTarget { diff --git a/src/build/expose.ts b/src/build/expose.ts index f2a6098bf..7e736484e 100644 --- a/src/build/expose.ts +++ b/src/build/expose.ts @@ -88,7 +88,9 @@ export function getExposedTypes( if (webidl.typedefs) { const referenced = webidl.typedefs.typedef.filter( - (t) => knownIDLTypes.has(t.name) || forceKnownTypesLogged.has(t.name), + (t) => + (knownIDLTypes.has(t.name) || forceKnownTypesLogged.has(t.name)) && + exposesTo(t, target), ); const { exposed, removed } = filterTypedefs(referenced, unexposedTypes); removed.forEach((s) => unexposedTypes.add(s)); diff --git a/src/build/types.ts b/src/build/types.ts index 69d5933db..0afefa610 100644 --- a/src/build/types.ts +++ b/src/build/types.ts @@ -233,6 +233,7 @@ export interface TypeDef extends Typed { deprecated?: boolean; legacyNamespace?: string; typeParameters?: TypeParameter[]; + exposed?: string; } export interface Dictionary { From 9b4cda879f3ca905c729b0071553d1b2ce8eee2f Mon Sep 17 00:00:00 2001 From: dandalf Date: Tue, 23 Sep 2025 21:19:52 -0600 Subject: [PATCH 2/8] added onerror test --- unittests/files/onerror.ts | 59 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 unittests/files/onerror.ts diff --git a/unittests/files/onerror.ts b/unittests/files/onerror.ts new file mode 100644 index 000000000..cbefbb0eb --- /dev/null +++ b/unittests/files/onerror.ts @@ -0,0 +1,59 @@ +/** + * window.onerror works as intended with global event handler + */ +window.onerror = (message, src, lineno, colno, error) => { + if (message && src && lineno && colno && error) { + return; + } +}; + +const div: HTMLElement = document.createElement("div"); + + +/** + * HTMLElement.onerror works with a single event arg, UIEvent + */ +div.onerror = (event: UIEvent) => { + if (event) { + return; + } +}; + +/** + * HTMLElement.onerror works with a single event arg, Event + */ +div.onerror = (event: Event) => { + if (event) { + return; + } +}; + +/** + * HTMLElement onerror is nullable + */ +div.onerror = null; + +const svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + +/** + * SVGElement.onerror works with a single event arg, UIEvent + */ +svg.onerror = (event: UIEvent) => { + if (event) { + return; + } +}; + +/** + * SVGElement.onerror works with a single event arg, Event + */ +svg.onerror = (event: Event) => { + if (event) { + return; + } +}; + +/** + * SVGElement onerror is nullable + */ +svg.onerror = null; From ac15d69f945e29b71f748445a44ba1c307e36fbe Mon Sep 17 00:00:00 2001 From: dandalf Date: Tue, 23 Sep 2025 22:55:03 -0600 Subject: [PATCH 3/8] added event listener fix to html and svg element --- inputfiles/overridingTypes.jsonc | 20 +++++++++++++ unittests/files/eventlistener.ts | 50 +++++++++++++++++++++++++++++++- 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 32683a28b..553bdea5f 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -1170,6 +1170,18 @@ "type": "any" } } + }, + "methods": { + "method": { + "addEventListener": { + "mdnUrl": "https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener", + "comment": "The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.", + "overrideSignatures": [ + "addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void" + ] + + } + } } }, "SVGSVGElement": { @@ -1188,6 +1200,14 @@ "overrideType": "NodeListOf" } } + }, + "addEventListener": { + "mdnUrl": "https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener", + "comment": "The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.", + "overrideSignatures": [ + "addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void" + ] + } } } diff --git a/unittests/files/eventlistener.ts b/unittests/files/eventlistener.ts index 021afbc3c..199ff85f1 100644 --- a/unittests/files/eventlistener.ts +++ b/unittests/files/eventlistener.ts @@ -3,7 +3,55 @@ document.addEventListener("arbitrary_invalid_event", (ev) => { }); document.addEventListener("arbitrary_invalid_event", { - handleEvent(ev) { + handleEvent(ev) { return ev.returnValue; + }, +}); +const divElement: HTMLElement = document.createElement("div"); + + +divElement.addEventListener( + "click", + (event: Event) => { + if (event) { + return; + } + }, + false, +); + +divElement.addEventListener("click", (event: Event) => { + if (event) { + return; + } +}); + +divElement.addEventListener("beep", (event: UIEvent) => { + if (event) { + return; + } +}); + +const svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + +svgElement.addEventListener( + "click", + (event: Event) => { + if (event) { + return; + } + }, + false, +); + +svgElement.addEventListener("click", (event: Event) => { + if (event) { + return; + } +}); + +svgElement.addEventListener("beep", (event: UIEvent) => { + if (event) { + return; } }); From 33ad906ccdaaf42a66a8a18df948d475382ef659 Mon Sep 17 00:00:00 2001 From: dandalf Date: Wed, 24 Sep 2025 22:49:16 -0600 Subject: [PATCH 4/8] added comments to eventlistener test --- unittests/files/eventlistener.ts | 46 +++++++++++++++++++++++++++++--- unittests/files/onerror.ts | 1 - 2 files changed, 42 insertions(+), 5 deletions(-) diff --git a/unittests/files/eventlistener.ts b/unittests/files/eventlistener.ts index 199ff85f1..7f27d4665 100644 --- a/unittests/files/eventlistener.ts +++ b/unittests/files/eventlistener.ts @@ -9,7 +9,9 @@ document.addEventListener("arbitrary_invalid_event", { }); const divElement: HTMLElement = document.createElement("div"); - +/** + * addEventListener works with a single event arg, Event + */ divElement.addEventListener( "click", (event: Event) => { @@ -20,20 +22,41 @@ divElement.addEventListener( false, ); -divElement.addEventListener("click", (event: Event) => { +/** + * HTMLElement addEventListener works with a single event arg, UIEvent + */ +divElement.addEventListener("click", (event: UIEvent) => { + if (event) { + return; + } +}); + +/** + * HTMLElement addEventListener works with a custom string and single event arg, Event + */ +divElement.addEventListener("beep", (event: Event) => { if (event) { return; } }); +/** + * HTMLElement addEventListener works with a custom string and single event arg, UIEvent + */ divElement.addEventListener("beep", (event: UIEvent) => { if (event) { return; } }); -const svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); +const svgElement = document.createElementNS( + "http://www.w3.org/2000/svg", + "svg", +); +/** + * SVGElement addEventListener works with a single event arg, Event + */ svgElement.addEventListener( "click", (event: Event) => { @@ -44,12 +67,27 @@ svgElement.addEventListener( false, ); -svgElement.addEventListener("click", (event: Event) => { +/** + * SVGElement addEventListener works with a single event arg, UIEvent + */ +svgElement.addEventListener("click", (event: UIEvent) => { + if (event) { + return; + } +}); + +/** + * SVGElement addEventListener works with a custom string and single event arg, Event + */ +svgElement.addEventListener("beep", (event: Event) => { if (event) { return; } }); +/** + * SVGElement addEventListener works with a custom string and single event arg, UIEvent + */ svgElement.addEventListener("beep", (event: UIEvent) => { if (event) { return; diff --git a/unittests/files/onerror.ts b/unittests/files/onerror.ts index cbefbb0eb..a3c52f08c 100644 --- a/unittests/files/onerror.ts +++ b/unittests/files/onerror.ts @@ -9,7 +9,6 @@ window.onerror = (message, src, lineno, colno, error) => { const div: HTMLElement = document.createElement("div"); - /** * HTMLElement.onerror works with a single event arg, UIEvent */ From 72be5b4ea814540417bfd15540f1727e49a4d0f8 Mon Sep 17 00:00:00 2001 From: dandalf Date: Wed, 24 Sep 2025 22:51:30 -0600 Subject: [PATCH 5/8] addressed style comment --- unittests/files/eventlistener.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/files/eventlistener.ts b/unittests/files/eventlistener.ts index 7f27d4665..eee413000 100644 --- a/unittests/files/eventlistener.ts +++ b/unittests/files/eventlistener.ts @@ -3,7 +3,7 @@ document.addEventListener("arbitrary_invalid_event", (ev) => { }); document.addEventListener("arbitrary_invalid_event", { - handleEvent(ev) { + handleEvent(ev){ return ev.returnValue; }, }); From 88eb1fcd50fc214db6592d5ba1571a04100d6f15 Mon Sep 17 00:00:00 2001 From: dandalf Date: Wed, 24 Sep 2025 22:54:47 -0600 Subject: [PATCH 6/8] reverted style change --- unittests/files/eventlistener.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittests/files/eventlistener.ts b/unittests/files/eventlistener.ts index eee413000..32ebfa0cb 100644 --- a/unittests/files/eventlistener.ts +++ b/unittests/files/eventlistener.ts @@ -3,7 +3,7 @@ document.addEventListener("arbitrary_invalid_event", (ev) => { }); document.addEventListener("arbitrary_invalid_event", { - handleEvent(ev){ + handleEvent(ev) { return ev.returnValue; }, }); From 2503891e296b7295517a623a50e55e2c73871461 Mon Sep 17 00:00:00 2001 From: dandalf Date: Fri, 5 Dec 2025 21:32:36 -0700 Subject: [PATCH 7/8] gave overriding type a more descriptive name --- baselines/dom.generated.d.ts | 6 +++--- baselines/ts5.5/dom.generated.d.ts | 6 +++--- baselines/ts5.6/dom.generated.d.ts | 6 +++--- inputfiles/addedTypes.jsonc | 2 +- inputfiles/knownTypes.json | 2 +- inputfiles/patches/events.kdl | 2 +- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index 14743b68a..9124cdc56 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -15071,7 +15071,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: DocumentOrGlobalOnErrorHandler; + onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41635,7 +41635,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: DocumentOrGlobalOnErrorHandler; +declare var onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41912,7 +41912,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; -type DocumentOrGlobalOnErrorHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; +type DocumentOrGlobalOnErrorEventHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; diff --git a/baselines/ts5.5/dom.generated.d.ts b/baselines/ts5.5/dom.generated.d.ts index ce28653c6..8fff332a2 100644 --- a/baselines/ts5.5/dom.generated.d.ts +++ b/baselines/ts5.5/dom.generated.d.ts @@ -15057,7 +15057,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: DocumentOrGlobalOnErrorHandler; + onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41609,7 +41609,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: DocumentOrGlobalOnErrorHandler; +declare var onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41886,7 +41886,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; -type DocumentOrGlobalOnErrorHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; +type DocumentOrGlobalOnErrorEventHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; diff --git a/baselines/ts5.6/dom.generated.d.ts b/baselines/ts5.6/dom.generated.d.ts index 02c7a805c..891d38b9c 100644 --- a/baselines/ts5.6/dom.generated.d.ts +++ b/baselines/ts5.6/dom.generated.d.ts @@ -15068,7 +15068,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: DocumentOrGlobalOnErrorHandler; + onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41632,7 +41632,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: DocumentOrGlobalOnErrorHandler; +declare var onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41909,7 +41909,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; -type DocumentOrGlobalOnErrorHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; +type DocumentOrGlobalOnErrorEventHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams; diff --git a/inputfiles/addedTypes.jsonc b/inputfiles/addedTypes.jsonc index 86c07ad8c..d5bb88994 100644 --- a/inputfiles/addedTypes.jsonc +++ b/inputfiles/addedTypes.jsonc @@ -848,7 +848,7 @@ "overrideType": "AutoFillBase | `${OptionalPrefixToken}${OptionalPrefixToken}${AutoFillField}${OptionalPostfixToken}`" }, { - "name": "DocumentOrGlobalOnErrorHandler", + "name": "DocumentOrGlobalOnErrorEventHandler", "nullable": true, "overrideType": "((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull", "exposed": "Window" diff --git a/inputfiles/knownTypes.json b/inputfiles/knownTypes.json index 092031fb5..0303dda42 100644 --- a/inputfiles/knownTypes.json +++ b/inputfiles/knownTypes.json @@ -21,7 +21,7 @@ "CompositeOperationOrAuto", "ComputedKeyframe", "DisplayCaptureSurfaceType", - "DocumentOrGlobalOnErrorHandler", + "DocumentOrGlobalOnErrorEventHandler", "EcdhKeyDeriveParams", "EcdsaParams", "EcKeyAlgorithm", diff --git a/inputfiles/patches/events.kdl b/inputfiles/patches/events.kdl index f4bc663ee..292fd7094 100644 --- a/inputfiles/patches/events.kdl +++ b/inputfiles/patches/events.kdl @@ -74,7 +74,7 @@ interface-mixin GlobalEventHandlers { event transitionstart type=TransitionEvent event transitionend type=TransitionEvent event transitioncancel type=TransitionEvent - property onerror overrideType=DocumentOrGlobalOnErrorHandler + property onerror overrideType=DocumentOrGlobalOnErrorEventHandler } interface-mixin MessageEventTarget { From 6fc3c1bfd5cece05dca1c567735a6dd2529845dd Mon Sep 17 00:00:00 2001 From: dandalf Date: Fri, 5 Dec 2025 22:42:42 -0700 Subject: [PATCH 8/8] updated baselines --- baselines/dom.generated.d.ts | 12 ++++++++++++ baselines/ts5.5/dom.generated.d.ts | 12 ++++++++++++ baselines/ts5.6/dom.generated.d.ts | 12 ++++++++++++ baselines/ts5.9/dom.generated.d.ts | 17 +++++++++++++++-- 4 files changed, 51 insertions(+), 2 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index 9124cdc56..e6a509683 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -29370,6 +29370,12 @@ interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/viewportElement) */ readonly viewportElement: SVGElement | null; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -31734,6 +31740,12 @@ interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEvent unsuspendRedraw(suspendHandleID: number): void; /** @deprecated */ unsuspendRedrawAll(): void; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; diff --git a/baselines/ts5.5/dom.generated.d.ts b/baselines/ts5.5/dom.generated.d.ts index 8fff332a2..e895fc499 100644 --- a/baselines/ts5.5/dom.generated.d.ts +++ b/baselines/ts5.5/dom.generated.d.ts @@ -29345,6 +29345,12 @@ interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/viewportElement) */ readonly viewportElement: SVGElement | null; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -31709,6 +31715,12 @@ interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEvent unsuspendRedraw(suspendHandleID: number): void; /** @deprecated */ unsuspendRedrawAll(): void; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; diff --git a/baselines/ts5.6/dom.generated.d.ts b/baselines/ts5.6/dom.generated.d.ts index 891d38b9c..cbc4b1d44 100644 --- a/baselines/ts5.6/dom.generated.d.ts +++ b/baselines/ts5.6/dom.generated.d.ts @@ -29367,6 +29367,12 @@ interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/viewportElement) */ readonly viewportElement: SVGElement | null; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -31731,6 +31737,12 @@ interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEvent unsuspendRedraw(suspendHandleID: number): void; /** @deprecated */ unsuspendRedrawAll(): void; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; diff --git a/baselines/ts5.9/dom.generated.d.ts b/baselines/ts5.9/dom.generated.d.ts index ab262d313..e03fcefd9 100644 --- a/baselines/ts5.9/dom.generated.d.ts +++ b/baselines/ts5.9/dom.generated.d.ts @@ -15068,7 +15068,7 @@ interface GlobalEventHandlers { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ - onerror: OnErrorEventHandler; + onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -29367,6 +29367,12 @@ interface SVGElement extends Element, ElementCSSInlineStyle, GlobalEventHandlers * [MDN Reference](https://developer.mozilla.org/docs/Web/API/SVGElement/viewportElement) */ readonly viewportElement: SVGElement | null; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGElement, ev: SVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -31731,6 +31737,12 @@ interface SVGSVGElement extends SVGGraphicsElement, SVGFitToViewBox, WindowEvent unsuspendRedraw(suspendHandleID: number): void; /** @deprecated */ unsuspendRedrawAll(): void; + /** + * The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target. + * + * [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) + */ + addEventListener(type: string, listener: ((event: Event) => void) | ((event: UIEvent) => void)): void; addEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: SVGSVGElement, ev: SVGSVGElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; @@ -41632,7 +41644,7 @@ declare var onemptied: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLMediaElement/ended_event) */ declare var onended: ((this: Window, ev: Event) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLElement/error_event) */ -declare var onerror: OnErrorEventHandler; +declare var onerror: DocumentOrGlobalOnErrorEventHandler; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/focus_event) */ declare var onfocus: ((this: Window, ev: FocusEvent) => any) | null; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLFormElement/formdata_event) */ @@ -41909,6 +41921,7 @@ type ConstrainDouble = number | ConstrainDoubleRange; type ConstrainULong = number | ConstrainULongRange; type CookieList = CookieListItem[]; type DOMHighResTimeStamp = number; +type DocumentOrGlobalOnErrorEventHandler = (((event: Event) => any) | ((event: UIEvent) => any) | OnErrorEventHandlerNonNull) | null; type EpochTimeStamp = number; type EventListenerOrEventListenerObject = EventListener | EventListenerObject; type FileSystemWriteChunkType = BufferSource | Blob | string | WriteParams;