Skip to content

Commit 53795af

Browse files
committed
fix error events not working
1 parent e16a89c commit 53795af

File tree

4 files changed

+53
-0
lines changed

4 files changed

+53
-0
lines changed

.changeset/nasty-spoons-wonder.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@remote-dom/polyfill': patch
3+
---
4+
5+
fix error events not working
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// https://html.spec.whatwg.org/multipage/webappapis.html#errorevent
2+
export class ErrorEvent extends Event {
3+
readonly message: ErrorEventInit['message'];
4+
readonly filename: ErrorEventInit['filename'];
5+
readonly lineno: ErrorEventInit['lineno'];
6+
readonly colno: ErrorEventInit['colno'];
7+
readonly error: ErrorEventInit['error'];
8+
9+
constructor(type: string, eventInitDict: ErrorEventInit) {
10+
super(type, eventInitDict);
11+
12+
this.message = eventInitDict.message;
13+
this.filename = eventInitDict.filename;
14+
this.lineno = eventInitDict.lineno;
15+
this.colno = eventInitDict.colno;
16+
this.error = eventInitDict.error;
17+
}
18+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//https://html.spec.whatwg.org/multipage/webappapis.html#promiserejectionevent
2+
export class PromiseRejectionEvent extends Event {
3+
readonly promise: PromiseRejectionEventInit['promise'];
4+
readonly reason: PromiseRejectionEventInit['reason'];
5+
6+
constructor(type: string, eventInitDict: PromiseRejectionEventInit) {
7+
super(type, eventInitDict);
8+
9+
this.promise = eventInitDict.promise;
10+
this.reason = eventInitDict.reason;
11+
}
12+
}

packages/polyfill/source/Window.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import {Document} from './Document.ts';
22
import {Event} from './Event.ts';
33
import {EventTarget} from './EventTarget.ts';
44
import {CustomEvent} from './CustomEvent.ts';
5+
import {ErrorEvent} from './ErrorEvent.ts';
6+
import {PromiseRejectionEvent} from './PromiseRejectionEvent.ts';
57
import {Node} from './Node.ts';
68
import {ParentNode} from './ParentNode.ts';
79
import {ChildNode} from './ChildNode.ts';
@@ -30,6 +32,8 @@ export class Window extends EventTarget {
3032
location = globalThis.location;
3133
navigator = globalThis.navigator;
3234
Event = Event;
35+
ErrorEvent = ErrorEvent;
36+
PromiseRejectionEvent = PromiseRejectionEvent;
3337
EventTarget = EventTarget;
3438
CustomEvent = CustomEvent;
3539
Node = Node;
@@ -46,6 +50,20 @@ export class Window extends EventTarget {
4650
HTMLTemplateElement = HTMLTemplateElement;
4751
MutationObserver = MutationObserver;
4852

53+
get onerror() {
54+
return globalThis.onerror;
55+
}
56+
set onerror(handler: any) {
57+
globalThis.onerror = handler;
58+
}
59+
60+
get onunhandledrejection() {
61+
return globalThis.onunhandledrejection;
62+
}
63+
set onunhandledrejection(handler: any) {
64+
globalThis.onunhandledrejection = handler;
65+
}
66+
4967
static setGlobal(window: Window) {
5068
const properties = Object.getOwnPropertyDescriptors(window);
5169

0 commit comments

Comments
 (0)