Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions tsc/internal/bundled/libs/lib.dom.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12538,6 +12538,7 @@ declare var DigitalCredential: {

interface DocumentEventMap extends GlobalEventHandlersEventMap {
"DOMContentLoaded": Event;
"error": UIEvent;
"fullscreenchange": Event;
"fullscreenerror": Event;
"pointerlockchange": Event;
Expand Down Expand Up @@ -16688,7 +16689,7 @@ interface GlobalEventHandlersEventMap {
"durationchange": Event;
"emptied": Event;
"ended": Event;
"error": ErrorEvent;
"error": Event;
"focus": FocusEvent;
"focusin": FocusEvent;
"focusout": FocusEvent;
Expand Down Expand Up @@ -16829,7 +16830,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: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
/** [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) */
Expand Down Expand Up @@ -17719,6 +17720,7 @@ declare var HTMLDocument: {
};

interface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
"error": UIEvent;
}

/**
Expand Down Expand Up @@ -23742,6 +23744,7 @@ declare var MIDIPort: {
};

interface MathMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
"error": UIEvent;
}

/**
Expand Down Expand Up @@ -31484,6 +31487,7 @@ declare var SVGDescElement: {
};

interface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
"error": UIEvent;
}

/**
Expand Down Expand Up @@ -41159,6 +41163,7 @@ interface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandler
"devicemotion": DeviceMotionEvent;
"deviceorientation": DeviceOrientationEvent;
"deviceorientationabsolute": DeviceOrientationEvent;
"error": ErrorEvent;
"gamepadconnected": GamepadEvent;
"gamepaddisconnected": GamepadEvent;
"orientationchange": Event;
Expand Down Expand Up @@ -41612,6 +41617,8 @@ interface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandler
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)
*/
stop(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/error_event) */
onerror: OnErrorEventHandler;
addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
Expand Down
24 changes: 24 additions & 0 deletions tsc/testdata/baselines/reference/compiler/domHTMLElementOnError.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
//// [tests/cases/compiler/domHTMLElementOnError.ts] ////

//// [domHTMLElementOnError.ts]
declare const htmlElement: HTMLElement;

htmlElement.onerror = (event: Event) => {};
htmlElement.onerror = (event: UIEvent) => {};
htmlElement.addEventListener("error", (event: Event) => {});
htmlElement.addEventListener("error", (event: UIEvent) => {});

declare const win: Window;

win.onerror = (event, source, lineno, colno, error) => {};
win.addEventListener("error", (event: ErrorEvent) => {});


//// [domHTMLElementOnError.js]
"use strict";
htmlElement.onerror = (event) => { };
htmlElement.onerror = (event) => { };
htmlElement.addEventListener("error", (event) => { });
htmlElement.addEventListener("error", (event) => { });
win.onerror = (event, source, lineno, colno, error) => { };
win.addEventListener("error", (event) => { });
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
//// [tests/cases/compiler/domHTMLElementOnError.ts] ////

=== domHTMLElementOnError.ts ===
declare const htmlElement: HTMLElement;
>htmlElement : Symbol(htmlElement, Decl(domHTMLElementOnError.ts, 0, 13))
>HTMLElement : Symbol(HTMLElement, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

htmlElement.onerror = (event: Event) => {};
>htmlElement.onerror : Symbol(GlobalEventHandlers.onerror, Decl(lib.dom.d.ts, --, --))
>htmlElement : Symbol(htmlElement, Decl(domHTMLElementOnError.ts, 0, 13))
>onerror : Symbol(GlobalEventHandlers.onerror, Decl(lib.dom.d.ts, --, --))
>event : Symbol(event, Decl(domHTMLElementOnError.ts, 2, 23))
>Event : Symbol(Event, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

htmlElement.onerror = (event: UIEvent) => {};
>htmlElement.onerror : Symbol(GlobalEventHandlers.onerror, Decl(lib.dom.d.ts, --, --))
>htmlElement : Symbol(htmlElement, Decl(domHTMLElementOnError.ts, 0, 13))
>onerror : Symbol(GlobalEventHandlers.onerror, Decl(lib.dom.d.ts, --, --))
>event : Symbol(event, Decl(domHTMLElementOnError.ts, 3, 23))
>UIEvent : Symbol(UIEvent, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

htmlElement.addEventListener("error", (event: Event) => {});
>htmlElement.addEventListener : Symbol(HTMLElement.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>htmlElement : Symbol(htmlElement, Decl(domHTMLElementOnError.ts, 0, 13))
>addEventListener : Symbol(HTMLElement.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>event : Symbol(event, Decl(domHTMLElementOnError.ts, 4, 39))
>Event : Symbol(Event, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

htmlElement.addEventListener("error", (event: UIEvent) => {});
>htmlElement.addEventListener : Symbol(HTMLElement.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>htmlElement : Symbol(htmlElement, Decl(domHTMLElementOnError.ts, 0, 13))
>addEventListener : Symbol(HTMLElement.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>event : Symbol(event, Decl(domHTMLElementOnError.ts, 5, 39))
>UIEvent : Symbol(UIEvent, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

declare const win: Window;
>win : Symbol(win, Decl(domHTMLElementOnError.ts, 7, 13))
>Window : Symbol(Window, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

win.onerror = (event, source, lineno, colno, error) => {};
>win.onerror : Symbol(Window.onerror, Decl(lib.dom.d.ts, --, --))
>win : Symbol(win, Decl(domHTMLElementOnError.ts, 7, 13))
>onerror : Symbol(Window.onerror, Decl(lib.dom.d.ts, --, --))
>event : Symbol(event, Decl(domHTMLElementOnError.ts, 9, 15))
>source : Symbol(source, Decl(domHTMLElementOnError.ts, 9, 21))
>lineno : Symbol(lineno, Decl(domHTMLElementOnError.ts, 9, 29))
>colno : Symbol(colno, Decl(domHTMLElementOnError.ts, 9, 37))
>error : Symbol(error, Decl(domHTMLElementOnError.ts, 9, 44))

win.addEventListener("error", (event: ErrorEvent) => {});
>win.addEventListener : Symbol(Window.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>win : Symbol(win, Decl(domHTMLElementOnError.ts, 7, 13))
>addEventListener : Symbol(Window.addEventListener, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))
>event : Symbol(event, Decl(domHTMLElementOnError.ts, 10, 31))
>ErrorEvent : Symbol(ErrorEvent, Decl(lib.dom.d.ts, --, --), Decl(lib.dom.d.ts, --, --))

Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
//// [tests/cases/compiler/domHTMLElementOnError.ts] ////

=== domHTMLElementOnError.ts ===
declare const htmlElement: HTMLElement;
>htmlElement : HTMLElement

htmlElement.onerror = (event: Event) => {};
>htmlElement.onerror = (event: Event) => {} : (event: Event) => void
>htmlElement.onerror : ((this: GlobalEventHandlers, ev: UIEvent) => any) | null
>htmlElement : HTMLElement
>onerror : ((this: GlobalEventHandlers, ev: UIEvent) => any) | null
>(event: Event) => {} : (event: Event) => void
>event : Event

htmlElement.onerror = (event: UIEvent) => {};
>htmlElement.onerror = (event: UIEvent) => {} : (event: UIEvent) => void
>htmlElement.onerror : ((this: GlobalEventHandlers, ev: UIEvent) => any) | null
>htmlElement : HTMLElement
>onerror : ((this: GlobalEventHandlers, ev: UIEvent) => any) | null
>(event: UIEvent) => {} : (event: UIEvent) => void
>event : UIEvent

htmlElement.addEventListener("error", (event: Event) => {});
>htmlElement.addEventListener("error", (event: Event) => {}) : void
>htmlElement.addEventListener : { <K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; }
>htmlElement : HTMLElement
>addEventListener : { <K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; }
>"error" : "error"
>(event: Event) => {} : (event: Event) => void
>event : Event

htmlElement.addEventListener("error", (event: UIEvent) => {});
>htmlElement.addEventListener("error", (event: UIEvent) => {}) : void
>htmlElement.addEventListener : { <K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; }
>htmlElement : HTMLElement
>addEventListener : { <K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; }
>"error" : "error"
>(event: UIEvent) => {} : (event: UIEvent) => void
>event : UIEvent

declare const win: Window;
>win : Window

win.onerror = (event, source, lineno, colno, error) => {};
>win.onerror = (event, source, lineno, colno, error) => {} : (event: string | Event, source: string | undefined, lineno: number | undefined, colno: number | undefined, error: Error | undefined) => void
>win.onerror : OnErrorEventHandler
>win : Window
>onerror : OnErrorEventHandler
>(event, source, lineno, colno, error) => {} : (event: string | Event, source: string | undefined, lineno: number | undefined, colno: number | undefined, error: Error | undefined) => void
>event : string | Event
>source : string | undefined
>lineno : number | undefined
>colno : number | undefined
>error : Error | undefined

win.addEventListener("error", (event: ErrorEvent) => {});
>win.addEventListener("error", (event: ErrorEvent) => {}) : void
>win.addEventListener : { <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; }
>win : Window
>addEventListener : { <K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; (type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; }
>"error" : "error"
>(event: ErrorEvent) => {} : (event: ErrorEvent) => void
>event : ErrorEvent

Large diffs are not rendered by default.

11 changes: 9 additions & 2 deletions tsc/testdata/fixtures/lib/dom.generated.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12522,6 +12522,7 @@ declare var DigitalCredential: {

interface DocumentEventMap extends GlobalEventHandlersEventMap {
"DOMContentLoaded": Event;
"error": UIEvent;
"fullscreenchange": Event;
"fullscreenerror": Event;
"pointerlockchange": Event;
Expand Down Expand Up @@ -16672,7 +16673,7 @@ interface GlobalEventHandlersEventMap {
"durationchange": Event;
"emptied": Event;
"ended": Event;
"error": ErrorEvent;
"error": Event;
"focus": FocusEvent;
"focusin": FocusEvent;
"focusout": FocusEvent;
Expand Down Expand Up @@ -16813,7 +16814,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: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
/** [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) */
Expand Down Expand Up @@ -17703,6 +17704,7 @@ declare var HTMLDocument: {
};

interface HTMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
"error": UIEvent;
}

/**
Expand Down Expand Up @@ -23726,6 +23728,7 @@ declare var MIDIPort: {
};

interface MathMLElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
"error": UIEvent;
}

/**
Expand Down Expand Up @@ -31468,6 +31471,7 @@ declare var SVGDescElement: {
};

interface SVGElementEventMap extends ElementEventMap, GlobalEventHandlersEventMap {
"error": UIEvent;
}

/**
Expand Down Expand Up @@ -41143,6 +41147,7 @@ interface WindowEventMap extends GlobalEventHandlersEventMap, WindowEventHandler
"devicemotion": DeviceMotionEvent;
"deviceorientation": DeviceOrientationEvent;
"deviceorientationabsolute": DeviceOrientationEvent;
"error": ErrorEvent;
"gamepadconnected": GamepadEvent;
"gamepaddisconnected": GamepadEvent;
"orientationchange": Event;
Expand Down Expand Up @@ -41596,6 +41601,8 @@ interface Window extends EventTarget, AnimationFrameProvider, GlobalEventHandler
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)
*/
stop(): void;
/** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/error_event) */
onerror: OnErrorEventHandler;
addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
Expand Down
14 changes: 14 additions & 0 deletions tsc/testdata/tests/cases/compiler/domHTMLElementOnError.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// @strict: true
// @lib: esnext,dom

declare const htmlElement: HTMLElement;

htmlElement.onerror = (event: Event) => {};
htmlElement.onerror = (event: UIEvent) => {};
htmlElement.addEventListener("error", (event: Event) => {});
htmlElement.addEventListener("error", (event: UIEvent) => {});

declare const win: Window;

win.onerror = (event, source, lineno, colno, error) => {};
win.addEventListener("error", (event: ErrorEvent) => {});