@@ -1771,6 +1771,7 @@ to <a for=AbortSignal>signal abort</a> on <a>this</a>'s <a for=AbortController>s
1771
1771
[Exposed=*]
1772
1772
interface AbortSignal : EventTarget {
1773
1773
[NewObject] static AbortSignal abort(optional any reason);
1774
+ [NewObject] static AbortSignal timeout([EnforceRange] unsigned long long milliseconds);
1774
1775
1775
1776
readonly attribute boolean aborted;
1776
1777
readonly attribute any reason;
@@ -1784,6 +1785,11 @@ interface AbortSignal : EventTarget {
1784
1785
<dd> Returns an {{AbortSignal}} instance whose <a for=AbortSignal>abort reason</a> is set to
1785
1786
<var> reason</var> if not undefined; otherwise to an "{{AbortError!!exception}} " {{DOMException}} .
1786
1787
1788
+ <dt><code> AbortSignal . <a method for=AbortSignal lt=timeout(milliseconds)>timeout</a> (<var> milliseconds</var> )</code>
1789
+ <dd> Returns an {{AbortSignal}} instance which will be aborted in <var> milliseconds</var>
1790
+ milliseconds. Its <a for=AbortSignal>abort reason</a> will be set to a
1791
+ "{{TimeoutError!!exception}} " {{DOMException}} .
1792
+
1787
1793
<dt><code><var> signal</var> . <a attribute for=AbortSignal>aborted</a> </code>
1788
1794
<dd> Returns true if <var> signal</var> 's {{AbortController}} has signaled to abort; otherwise false.
1789
1795
@@ -1836,6 +1842,31 @@ are:
1836
1842
<li> Return <var> signal</var> .
1837
1843
</ol>
1838
1844
1845
+ <p> The static <dfn method for=AbortSignal><code>timeout(<var>milliseconds</var>)</code></dfn> method
1846
+ steps are:
1847
+
1848
+ <ol>
1849
+ <li><p> Let <var> signal</var> be a new {{AbortSignal}} object.
1850
+
1851
+ <li><p> Let <var> global</var> be <var> signal</var> 's <a>relevant global object</a> .
1852
+
1853
+ <li>
1854
+ <p> <a>Run steps after a timeout</a> given <var> global</var> , "<code> AbortSignal-timeout</code> ",
1855
+ <var> milliseconds</var> , and the following step:</p>
1856
+
1857
+ <ol>
1858
+ <li><p> <a>Queue a global task</a> on the <a>timer task source</a> given <var> global</var> to
1859
+ <a for=AbortSignal>signal abort</a> given <var> signal</var> and a new
1860
+ "{{TimeoutError!!exception}} " {{DOMException}} .
1861
+ </ol>
1862
+
1863
+ <p> For the duration of this timeout, if <var> signal</var> has any event listeners registered for
1864
+ its {{AbortSignal/abort}} event, there must be a strong reference from <var> global</var> to
1865
+ <var> signal</var> .
1866
+
1867
+ <li><p> Return <var> signal</var> .
1868
+ </ol>
1869
+
1839
1870
<p> The <dfn attribute for=AbortSignal>aborted</dfn> getter steps are to return true if <a>this</a>
1840
1871
is [=AbortSignal/aborted=] ; otherwise false.
1841
1872
0 commit comments