Skip to content

Commit 2e17139

Browse files
committed
Add support for AsyncContext in dispatching Events
1 parent 03357df commit 2e17139

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

dom.bs

+29-17
Original file line numberDiff line numberDiff line change
@@ -1287,8 +1287,9 @@ property of the event being dispatched.
12871287

12881288
<div algorithm>
12891289
<p>To <dfn export id=concept-event-dispatch>dispatch</dfn> an <var>event</var> to a
1290-
<var>target</var>, with an optional <var>legacy target override flag</var> and an optional
1291-
<var>legacyOutputDidListenersThrowFlag</var>, run these steps:
1290+
<var>target</var>, with an optional <var>legacy target override flag</var>, an optional
1291+
<var>legacyOutputDidListenersThrowFlag</var>, and an optional
1292+
<var>useCallerAsyncContextFlag</var>, run these steps:
12921293

12931294
<ol>
12941295
<li><p>Set <var>event</var>'s <a>dispatch flag</a>.
@@ -1425,8 +1426,9 @@ property of the event being dispatched.
14251426
<li><p>Otherwise, set <var>event</var>'s {{Event/eventPhase}} attribute to
14261427
{{Event/CAPTURING_PHASE}}.
14271428

1428-
<li><p><a>Invoke</a> with <var>struct</var>, <var>event</var>, "<code>capturing</code>", and
1429-
<var>legacyOutputDidListenersThrowFlag</var> if given.
1429+
<li><p><a>Invoke</a> with <var>struct</var>, <var>event</var>, "<code>capturing</code>",
1430+
<var>legacyOutputDidListenersThrowFlag</var> if given, and
1431+
<var>useCallerAsyncContextFlag</var> if given.
14301432
</ol>
14311433

14321434
<li>
@@ -1446,8 +1448,9 @@ property of the event being dispatched.
14461448
<li><p>Set <var>event</var>'s {{Event/eventPhase}} attribute to {{Event/BUBBLING_PHASE}}.
14471449
</ol>
14481450

1449-
<li><p><a>Invoke</a> with <var>struct</var>, <var>event</var>, "<code>bubbling</code>", and
1450-
<var>legacyOutputDidListenersThrowFlag</var> if given.
1451+
<li><p><a>Invoke</a> with <var>struct</var>, <var>event</var>, "<code>bubbling</code>",
1452+
<var>legacyOutputDidListenersThrowFlag</var> if given, and
1453+
<var>useCallerAsyncContextFlag</var> if given.
14511454
</ol>
14521455
</ol>
14531456

@@ -1517,8 +1520,9 @@ steps:</p>
15171520

15181521
<div algorithm>
15191522
<p>To <dfn noexport id=concept-event-listener-invoke>invoke</dfn>, given a <var>struct</var>,
1520-
<var>event</var>, <var>phase</var>, and an optional <var>legacyOutputDidListenersThrowFlag</var>,
1521-
run these steps:
1523+
<var>event</var>, <var>phase</var>, an optional <var>legacyOutputDidListenersThrowFlag</var>,
1524+
an optional <var>legacyOutputDidListenersThrowFlag</var> if given, and an optional
1525+
<var>useCallerAsyncContextFlag</var>, run these steps:
15221526

15231527
<ol>
15241528
<li><p>Set <var>event</var>'s <a for=Event>target</a> to the
@@ -1548,8 +1552,9 @@ run these steps:
15481552
<a for=Event/path>invocation-target-in-shadow-tree</a>.
15491553

15501554
<li><p>Let <var>found</var> be the result of running <a>inner invoke</a> with <var>event</var>,
1551-
<var>listeners</var>, <var>phase</var>, <var>invocationTargetInShadowTree</var>, and
1552-
<var>legacyOutputDidListenersThrowFlag</var> if given.
1555+
<var>listeners</var>, <var>phase</var>, <var>invocationTargetInShadowTree</var>,
1556+
<var>legacyOutputDidListenersThrowFlag</var> if given, and <var>useCallerAsyncContextFlag</var> if
1557+
given.
15531558

15541559
<li>
15551560
<p>If <var>found</var> is false and <var>event</var>'s {{Event/isTrusted}} attribute is true,
@@ -1574,8 +1579,8 @@ run these steps:
15741579
</table>
15751580

15761581
<li><p><a>Inner invoke</a> with <var>event</var>, <var>listeners</var>, <var>phase</var>,
1577-
<var>invocationTargetInShadowTree</var>, and <var>legacyOutputDidListenersThrowFlag</var>
1578-
if given.
1582+
<var>invocationTargetInShadowTree</var>, <var>legacyOutputDidListenersThrowFlag</var> if given,
1583+
and <var>useCallerAsyncContextFlag</var> if given.
15791584

15801585
<li><p>Set <var>event</var>'s {{Event/type}} attribute value to <var>originalEventType</var>.
15811586
</ol>
@@ -1585,11 +1590,15 @@ run these steps:
15851590
<div algorithm>
15861591
<p>To <dfn noexport id=concept-event-listener-inner-invoke>inner invoke</dfn>, given an
15871592
<var>event</var>, <var>listeners</var>, <var>phase</var>, <var>invocationTargetInShadowTree</var>,
1588-
and an optional <var>legacyOutputDidListenersThrowFlag</var>, run these steps:
1593+
and an optional <var>legacyOutputDidListenersThrowFlag</var>, and an optional
1594+
<var>useCallerAsyncContextFlag</var>, run these steps:
15891595

15901596
<ol>
15911597
<li><p>Let <var>found</var> be false.
15921598

1599+
<li><p>Let <var>useCreationTimeAsyncContext</var> be false if
1600+
<var>useCallerAsyncContextFlag</var> is passed and true otherwise.
1601+
15931602
<li>
15941603
<p><a for=list>For each</a> <var>listener</var> in <var>listeners</var>, whose
15951604
<a for="event listener">removed</a> is false:
@@ -1632,8 +1641,9 @@ and an optional <var>legacyOutputDidListenersThrowFlag</var>, run these steps:
16321641

16331642
<li>
16341643
<p><a>Call a user object's operation</a> with <var>listener</var>'s
1635-
<a for="event listener">callback</a>, "<code>handleEvent</code>", « <var>event</var> », and
1636-
<var>event</var>'s {{Event/currentTarget}} attribute value. If this throws an exception, then:
1644+
<a for="event listener">callback</a>, "<code>handleEvent</code>", « <var>event</var> »,
1645+
<var>event</var>'s {{Event/currentTarget}} attribute value, and
1646+
<var>useCreationTimeAsyncContext</var>. If this throws an exception, then:
16371647

16381648
<ol>
16391649
<li><p><a>Report the exception</a>.
@@ -1664,7 +1674,8 @@ and an optional <var>legacyOutputDidListenersThrowFlag</var>, run these steps:
16641674
<div algorithm>
16651675
<p>To <dfn export id=concept-event-fire>fire an event</dfn> named <var>e</var> at <var>target</var>,
16661676
optionally using an <var>eventConstructor</var>, with a description of how IDL attributes are to be
1667-
initialized, and a <var>legacy target override flag</var>, run these steps:
1677+
initialized, a <var>legacy target override flag</var>, and an optional
1678+
<var>useCallerAsyncContextFlag</var> run these steps:
16681679

16691680
<ol>
16701681
<li><p>If <var>eventConstructor</var> is not given, then let <var>eventConstructor</var> be
@@ -1682,7 +1693,8 @@ initialized, and a <var>legacy target override flag</var>, run these steps:
16821693
<p class=note>This also allows for the {{Event/isTrusted}} attribute to be set to false.
16831694

16841695
<li><p>Return the result of <a>dispatching</a> <var>event</var> at <var>target</var>, with
1685-
<var>legacy target override flag</var> set if set.
1696+
<var>legacy target override flag</var> set if set, and <var>useCallerAsyncContextFlag</var> set if
1697+
set.
16861698
</ol>
16871699
</div>
16881700

0 commit comments

Comments
 (0)