Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WPT dom/abort: Fix missing target on events #3582

Merged
merged 1 commit into from
Feb 21, 2025
Merged
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
4 changes: 4 additions & 0 deletions src/workerd/api/basics.c++
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,10 @@ jsg::Optional<jsg::Ref<EventTarget>> Event::getCurrentTarget() {
return target.map([&](jsg::Ref<EventTarget>& t) { return t.addRef(); });
}

jsg::Optional<jsg::Ref<EventTarget>> Event::getTarget() {
return getCurrentTarget();
}

kj::Array<jsg::Ref<EventTarget>> Event::composedPath() {
if (isBeingDispatched) {
// When isBeingDispatched is true, target should always be non-null.
Expand Down
6 changes: 6 additions & 0 deletions src/workerd/api/basics.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,10 @@ class Event: public jsg::Object {
// successfully and will remain set after dispatching is completed.
jsg::Optional<jsg::Ref<EventTarget>> getCurrentTarget();

// Because we don't support hierarchical EventTargets, this function
// will always return the same value as getCurrentTarget().
jsg::Optional<jsg::Ref<EventTarget>> getTarget();

// For our implementation, since we do not support hierarchical EventTargets,
// the composedPath is always either an empty array if the Event is currently
// not being dispatched, or an array containing only the currentTarget if
Expand All @@ -151,6 +155,7 @@ class Event: public jsg::Object {
JSG_READONLY_PROTOTYPE_PROPERTY(defaultPrevented, getDefaultPrevented);
JSG_READONLY_PROTOTYPE_PROPERTY(returnValue, getReturnValue);
JSG_READONLY_PROTOTYPE_PROPERTY(currentTarget, getCurrentTarget);
JSG_READONLY_PROTOTYPE_PROPERTY(target, getTarget);
JSG_READONLY_PROTOTYPE_PROPERTY(srcElement, getCurrentTarget);
JSG_READONLY_PROTOTYPE_PROPERTY(timeStamp, getTimestamp);
JSG_READONLY_PROTOTYPE_PROPERTY(isTrusted, getIsTrusted);
Expand All @@ -165,6 +170,7 @@ class Event: public jsg::Object {
JSG_READONLY_INSTANCE_PROPERTY(defaultPrevented, getDefaultPrevented);
JSG_READONLY_INSTANCE_PROPERTY(returnValue, getReturnValue);
JSG_READONLY_INSTANCE_PROPERTY(currentTarget, getCurrentTarget);
JSG_READONLY_INSTANCE_PROPERTY(target, getTarget);
JSG_READONLY_INSTANCE_PROPERTY(srcElement, getCurrentTarget);
JSG_READONLY_INSTANCE_PROPERTY(timeStamp, getTimestamp);
JSG_READONLY_INSTANCE_PROPERTY(isTrusted, getIsTrusted);
Expand Down
1 change: 1 addition & 0 deletions src/workerd/api/http-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ export const inspect = {
defaultPrevented: false,
returnValue: true,
currentTarget: WebSocket { readyState: 1, url: null, protocol: '', extensions: '' },
target: WebSocket { readyState: 1, url: null, protocol: '', extensions: '' },
srcElement: WebSocket { readyState: 1, url: null, protocol: '', extensions: '' },
timeStamp: 0,
isTrusted: true,
Expand Down
10 changes: 2 additions & 8 deletions src/wpt/dom/abort-test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,12 @@ import { type TestRunnerConfig } from 'harness/harness';
export default {
'AbortSignal.any.js': {},
'abort-signal-any.any.js': {
comment:
'(1, 2) Target should be set to signal. (3) Should be investigated.',
comment: 'Order of event firing should be investigated.',
expectedFailures: [
'AbortSignal.any() follows a single signal (using AbortController)',
'AbortSignal.any() follows multiple signals (using AbortController)',
'Abort events for AbortSignal.any() signals fire in the right order (using AbortController)',
],
},
'event.any.js': {
comment: 'Target should be set to signal',
expectedFailures: ['the abort event should have the right properties'],
},
'event.any.js': {},
'timeout-shadowrealm.any.js': {
comment: 'Enable when ShadowRealm is implemented',
skipAllTests: true,
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2021-11-03/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -715,6 +715,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
readonly currentTarget?: EventTarget;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
readonly target?: EventTarget;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2021-11-03/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
readonly currentTarget?: EventTarget;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
readonly target?: EventTarget;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-01-31/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -715,6 +715,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-01-31/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-03-21/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-03-21/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-08-04/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-08-04/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-10-31/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -733,6 +733,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-10-31/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-11-30/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2022-11-30/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2023-03-01/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2023-03-01/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2023-07-01/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -738,6 +738,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/2023-07-01/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/experimental/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -748,6 +748,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/experimental/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -753,6 +753,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
get currentTarget(): EventTarget | undefined;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
get target(): EventTarget | undefined;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/oldest/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -715,6 +715,12 @@ declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
readonly currentTarget?: EventTarget;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
readonly target?: EventTarget;
/**
* @deprecated
*
Expand Down
6 changes: 6 additions & 0 deletions types/generated-snapshot/oldest/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -720,6 +720,12 @@ export declare class Event {
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/currentTarget)
*/
readonly currentTarget?: EventTarget;
/**
* Returns the object to which event is dispatched (its target).
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Event/target)
*/
readonly target?: EventTarget;
/**
* @deprecated
*
Expand Down
Loading