Skip to content

Commit

Permalink
WPT dom/abort: Fix missing target on events (#3582)
Browse files Browse the repository at this point in the history
  • Loading branch information
npaun authored Feb 21, 2025
1 parent f7bcdbb commit 82c3900
Show file tree
Hide file tree
Showing 24 changed files with 133 additions and 8 deletions.
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

0 comments on commit 82c3900

Please sign in to comment.