Skip to content

Commit 8a32a33

Browse files
sygdomenic
authored andcommitted
Integrate with Atomics.waitAsync
Implements HostResolveCrossAgentJob and HostEnqueueTimeoutJob.
1 parent 8430871 commit 8a32a33

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

source

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2959,7 +2959,9 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
29592959
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-hasownproperty">HasOwnProperty</dfn> abstract operation</li>
29602960
<li>The <dfn data-x="js-HostCallJobCallback" data-x-href="https://tc39.es/ecma262/#sec-hostcalljobcallback">HostCallJobCallback</dfn> abstract operation</li>
29612961
<li>The <dfn data-x="js-HostEnqueueFinalizationRegistryCleanupJob" data-x-href="https://tc39.es/ecma262/#sec-host-cleanup-finalization-registry">HostEnqueueFinalizationRegistryCleanupJob</dfn> abstract operation</li>
2962+
<li>The <dfn data-x="js-HostEnqueueGenericJob" data-x-href="https://tc39.es/ecma262/#sec-hostenqueuegenericjob">HostEnqueueGenericJob</dfn> abstract operation</li>
29622963
<li>The <dfn data-x="js-HostEnqueuePromiseJob" data-x-href="https://tc39.es/ecma262/#sec-hostenqueuepromisejob">HostEnqueuePromiseJob</dfn> abstract operation</li>
2964+
<li>The <dfn data-x="js-HostEnqueueTimeoutJob" data-x-href="https://tc39.es/ecma262/#sec-hostenqueuetimeoutjob">HostEnqueueTimeoutJob</dfn> abstract operation</li>
29632965
<li>The <dfn data-x="js-HostEnsureCanAddPrivateElement" data-x-href="https://tc39.es/ecma262/#sec-hostensurecanaddprivateelement">HostEnsureCanAddPrivateElement</dfn> abstract operation</li>
29642966
<li>The <dfn data-x="js-HostEnsureCanCompileStrings" data-x-href="https://tc39.es/ecma262/#sec-hostensurecancompilestrings">HostEnsureCanCompileStrings</dfn> abstract operation</li>
29652967
<li>The <dfn data-x="js-HostLoadImportedModule" data-x-href="https://tc39.es/proposal-import-attributes/#sec-HostLoadImportedModule">HostLoadImportedModule</dfn> abstract operation</li>
@@ -3004,6 +3006,7 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
30043006
<li>The <dfn data-x="js-abstract-equality" data-x-href="https://tc39.es/ecma262/#sec-islooselyequal">IsLooselyEqual</dfn> abstract operation</li>
30053007
<li>The <dfn data-x="js-strict-equality" data-x-href="https://tc39.es/ecma262/#sec-isstrictlyequal">IsStrictlyEqual</dfn> abstract operation</li>
30063008
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-atomics-object"><code>Atomics</code></dfn> object</li>
3009+
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-atomics.waitasync"><code>Atomics.waitAsync</code></dfn> object</li>
30073010
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-date-objects"><code>Date</code></dfn> class</li>
30083011
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-finalization-registry-objects"><code>FinalizationRegistry</code></dfn> class</li>
30093012
<li>The <dfn data-x-href="https://tc39.es/ecma262/#sec-regexp-regular-expression-objects"><code>RegExp</code></dfn> class</li>
@@ -101068,6 +101071,23 @@ dictionary <dfn dictionary>PromiseRejectionEventInit</dfn> : <span>EventInit</sp
101068101071
</li>
101069101072
</ol>
101070101073

101074+
<h6 id="hostenqueuegenericjob"><dfn>HostEnqueueGenericJob</dfn>(<var>job</var>,
101075+
<var>realm</var>)</h6>
101076+
101077+
<p>JavaScript contains an <span>implementation-defined</span> <span
101078+
data-x="js-HostEnqueueGenericJob">HostEnqueueGenericJob</span>(<var>job</var>, <var>realm</var>)
101079+
abstract operation to perform generic jobs in a particular realm (e.g., resolve promises resulting
101080+
from <code>Atomics.waitAsync</code>). User agents must use the following implementation: <ref
101081+
spec=JAVASCRIPT></p>
101082+
101083+
<ol>
101084+
<li><p>Let <var>global</var> be <var>realm</var>'s <span data-x="concept-realm-global">global
101085+
object</span>.</p></li>
101086+
101087+
<li><p><span>Queue a global task</span> on the <span>JavaScript engine task source</span> given
101088+
<var>global</var> to perform <var>job</var>().</p></li>
101089+
</ol>
101090+
101071101091
<span id="integration-with-the-javascript-job-queue"></span>
101072101092
<span id="enqueuejob(queuename,-job,-arguments)"></span>
101073101093
<h6 id="hostenqueuepromisejob"><dfn>HostEnqueuePromiseJob</dfn>(<var>job</var>,
@@ -101137,6 +101157,27 @@ dictionary <dfn dictionary>PromiseRejectionEventInit</dfn> : <span>EventInit</sp
101137101157
</li>
101138101158
</ol>
101139101159

101160+
<h6 id="hostenqueuetimeoutjob"><dfn>HostEnqueueTimeoutJob</dfn>(<var>job</var>, <var>realm</var>,
101161+
<var>milliseconds</var>)</h6>
101162+
101163+
<p>JavaScript contains an <span>implementation-defined</span> <span
101164+
data-x="js-HostEnqueueTimeoutJob">HostEnqueueTimeoutJob</span>(<var>job</var>,
101165+
<var>milliseconds</var>) abstract operation to schedule an operation to be performed after a
101166+
timeout. HTML schedules these operations using <span>run steps after a timeout</span>. User agents
101167+
must use the following implementation: <ref spec=JAVASCRIPT></p>
101168+
101169+
<ol>
101170+
<li><p>Let <var>global</var> be <var>realm</var>'s <span data-x="concept-realm-global">global
101171+
object</span>.</p></li>
101172+
101173+
<li><p>Let <var>timeoutStep</var> be an algorithm step which <span data-x="queue a global
101174+
task">queues a global task</span> on the <span>JavaScript engine task source</span> given
101175+
<var>global</var> to perform <var>job</var>().</p></li>
101176+
101177+
<li><p><span>Run steps after a timeout</span> given <var>global</var>, "<code
101178+
data-x="">JavaScript</code>", <var>milliseconds</var>, and <var>timeoutStep</var>.</p></li>
101179+
</ol>
101180+
101140101181
<h6 id="hostmakejobcallback"><dfn>HostMakeJobCallback</dfn>(<var>callable</var>)</h6>
101141101182

101142101183
<p>JavaScript contains an <span>implementation-defined</span> <span

0 commit comments

Comments
 (0)