[
Constructor(DOMString type, optional EventInit eventInitDict),
CustomToJSObject,
DOMJIT,
ExportToWrappedFunction,
Exposed=(Window,Worker),
JSCustomHeader,
] interface Event {
readonly attribute DOMString type;
readonly attribute EventTarget? target;
readonly attribute EventTarget? currentTarget;
[EnabledAtRuntime=ShadowDOM] sequence<EventTarget> composedPath();
const unsigned short NONE = 0;
const unsigned short CAPTURING_PHASE = 1;
const unsigned short AT_TARGET = 2;
const unsigned short BUBBLING_PHASE = 3;
readonly attribute unsigned short eventPhase;
void stopPropagation();
attribute boolean cancelBubble; void stopImmediatePropagation();
readonly attribute boolean bubbles;
readonly attribute boolean cancelable;
void preventDefault();
readonly attribute boolean defaultPrevented;
[EnabledAtRuntime=ShadowDOM] readonly attribute boolean composed;
[Unforgeable] readonly attribute boolean isTrusted;
readonly attribute DOMTimeStamp timeStamp;
void initEvent(DOMString type, optional boolean bubbles = false, optional boolean cancelable = false);
readonly attribute EventTarget srcElement;
[ImplementedAs=legacyReturnValue] attribute boolean returnValue;
};