@@ -1637,23 +1637,25 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
1637
1637
<li><p>Let <var>p</var> be a new promise created in <span>this</span>'s <span
1638
1638
data-x="concept-relevant-realm">relevant realm</span>.</p></li>
1639
1639
1640
+ <li><p>Let <var>global</var> be <span>this</span>'s <span>relevant global
1641
+ object</span>.</p></li>
1642
+
1640
1643
<li>
1641
1644
<p>Run the following steps <span>in parallel</span>:</p>
1642
1645
1643
1646
<ol>
1644
1647
<li><p>If <var>nameList</var> <span data-x="list contains">contains</span> <var>name</var>,
1645
1648
then <span>queue a global task</span> on the <span>DOM manipulation task source</span> given
1646
- <span>this</span>'s <span>relevant global object</span > to reject <var>p</var> with a
1647
- <code>TypeError</code>, and abort these steps.</p></li>
1649
+ <var> global</var > to reject <var>p</var> with a <code>TypeError</code>, and abort these
1650
+ steps.</p></li>
1648
1651
1649
1652
<li><p>Do some potentially lengthy work.</p></li>
1650
1653
1651
1654
<li><p><span data-x="list append">Append</span> <var>name</var> to
1652
1655
<var>nameList</var>.</p></li>
1653
1656
1654
- <li><p><span>Queue a global task</span> on the <span>DOM manipulation task source</span>
1655
- given <span>this</span>'s <span>relevant global object</span> to resolve <var>p</var> with
1656
- undefined.</p></li>
1657
+ <li><p><span>Queue a global task</span> on the <span>DOM manipulation task source</span> given
1658
+ <var>global</var> to resolve <var>p</var> with undefined.</p></li>
1657
1659
</ol>
1658
1660
</li>
1659
1661
@@ -1671,23 +1673,25 @@ a.setAttribute('href', 'https://example.com/'); // change the content attribute
1671
1673
<li><p>Let <var>p</var> be a new promise created in <span>this</span>'s <span
1672
1674
data-x="concept-relevant-realm">relevant realm</span>.</p></li>
1673
1675
1676
+ <li><p>Let <var>global</var> be <span>this</span>'s <span>relevant global
1677
+ object</span>.</p></li>
1678
+
1674
1679
<li>
1675
1680
<p><mark><span>Enqueue the following steps</span> to <var>nameListQueue</var>:</mark></p>
1676
1681
1677
1682
<ol>
1678
1683
<li><p>If <var>nameList</var> <span data-x="list contains">contains</span> <var>name</var>,
1679
1684
then <span>queue a global task</span> on the <span>DOM manipulation task source</span> given
1680
- <span>this</span>'s <span>relevant global object</span > to reject <var>p</var> with a
1681
- <code>TypeError</code>, and abort these steps.</p></li>
1685
+ <var> global</var > to reject <var>p</var> with a <code>TypeError</code>, and abort these
1686
+ steps.</p></li>
1682
1687
1683
1688
<li><p>Do some potentially lengthy work.</p></li>
1684
1689
1685
1690
<li><p><span data-x="list append">Append</span> <var>name</var> to
1686
1691
<var>nameList</var>.</p></li>
1687
1692
1688
- <li><p><span>Queue a global task</span> on the <span>DOM manipulation task source</span>
1689
- given <span>this</span>'s <span>relevant global object</span> to resolve <var>p</var> with
1690
- undefined.</p></li>
1693
+ <li><p><span>Queue a global task</span> on the <span>DOM manipulation task source</span> given
1694
+ <var>global</var> to resolve <var>p</var> with undefined.</p></li>
1691
1695
</ol>
1692
1696
</li>
1693
1697
@@ -72160,6 +72164,8 @@ interface <dfn interface>OffscreenCanvas</dfn> : <span>EventTarget</span> {
72160
72164
72161
72165
<li><p>Let <var>result</var> be a new promise object.</p></li>
72162
72166
72167
+ <li><p>Let <var>global</var> be <span>this</span>'s <span>relevant global object</span>.</p></li>
72168
+
72163
72169
<li>
72164
72170
<p>Run these steps <span>in parallel</span>:</p>
72165
72171
@@ -72171,14 +72177,14 @@ interface <dfn interface>OffscreenCanvas</dfn> : <span>EventTarget</span> {
72171
72177
72172
72178
<li>
72173
72179
<p><span>Queue a global task</span> on the <span>canvas blob serialization task source</span>
72174
- given <span>this</span>'s <span>relevant global object</span > to run these steps:</p>
72180
+ given <var> global</var > to run these steps:</p>
72175
72181
72176
72182
<ol>
72177
72183
<li><p>If <var>file</var> is null, then reject <var>result</var> with an
72178
72184
<span>"<code>EncodingError</code>"</span> <code>DOMException</code>.</p></li>
72179
72185
72180
72186
<li><p>Otherwise, resolve <var>result</var> with a new <code>Blob</code> object, created in
72181
- <span>this</span >'s <span data-x="concept-relevant-realm">relevant realm</span>, representing
72187
+ <var>global</var >'s <span data-x="concept-relevant-realm">relevant realm</span>, representing
72182
72188
<var>file</var>. <ref>FILEAPI</ref></p></li>
72183
72189
</ol>
72184
72190
</li>
@@ -114024,6 +114030,10 @@ import "https://example.com/foo/../module2.mjs";</code></pre>
114024
114030
Doing so would create data races observable to JavaScript code, since after all, your algorithm
114025
114031
steps are running <em><span>in parallel</span></em> to the JavaScript code.</p>
114026
114032
114033
+ <p>By extension, you cannot access Web IDL's <span>this</span> value from steps running <span>in
114034
+ parallel</span>, even if those steps were activated by an algorithm that <em>does</em> have access
114035
+ to the <span>this</span> value.</p>
114036
+
114027
114037
<p>You can, however, manipulate specification-level data structures and values from
114028
114038
<cite>Infra</cite>, as those are realm-agnostic. They are never directly exposed to JavaScript without
114029
114039
a specific conversion taking place (often <span data-x="concept-idl-convert">via Web IDL</span>).
@@ -123951,48 +123961,50 @@ dictionary <dfn dictionary>WorkletOptions</dfn> {
123951
123961
123952
123962
<li><p>Let <var>promise</var> be a new promise.</p></li>
123953
123963
123964
+ <li><p>Let <var>workletInstance</var> be <span>this</span>.</p></li>
123965
+
123954
123966
<li>
123955
123967
<p>Run the following steps <span>in parallel</span>:</p>
123956
123968
123957
123969
<ol>
123958
123970
<li>
123959
- <p>If <span>this</span >'s <span data-x="concept-Worklet-global-scopes">global scopes</span>
123960
- <span data-x="list is empty">is empty</span>, then:</p>
123971
+ <p>If <var>workletInstance</var >'s <span data-x="concept-Worklet-global-scopes">global
123972
+ scopes</span> <span data-x="list is empty">is empty</span>, then:</p>
123961
123973
123962
123974
<ol>
123963
- <li><p><span>Create a worklet global scope</span> given <span>this</span >.</p></li>
123975
+ <li><p><span>Create a worklet global scope</span> given <var>workletInstance</var >.</p></li>
123964
123976
123965
123977
<li><p>Optionally, <span data-x="create a worklet global scope">create</span> additional
123966
- global scope instances given <span>this</span >, depending on the specific worklet in question
123967
- and its specification.</p></li>
123978
+ global scope instances given <var>workletInstance</var >, depending on the specific worklet in
123979
+ question and its specification.</p></li>
123968
123980
123969
123981
<li><p>Wait for all steps of the <span data-x="create a worklet global scope">creation</span>
123970
123982
process(es) — including those taking place within the <span data-x="worklet agent">worklet
123971
123983
agents</span> — to complete, before moving on.</p></li>
123972
123984
</ol>
123973
123985
</li>
123974
123986
123975
- <li><p>Let <var>pendingTasks</var> be <span>this</span >'s <span
123987
+ <li><p>Let <var>pendingTasks</var> be <var>workletInstance</var >'s <span
123976
123988
data-x="concept-Worklet-global-scopes">global scopes</span>'s <span data-x="list
123977
123989
size">size</span>.</p></li>
123978
123990
123979
123991
<li><p>Let <var>addedSuccessfully</var> be false.</p></li>
123980
123992
123981
123993
<li>
123982
123994
<p><span data-x="list iterate">For each</span> <var>workletGlobalScope</var> of
123983
- <span>this</span >'s <span data-x="concept-Worklet-global-scopes">global scopes</span>,
123984
- < span>queue a global task</span> on the <span>networking task source</span> given
123985
- <var>workletGlobalScope</var> to <span>fetch a worklet script graph</span> given
123986
- <var>moduleURLRecord</var>, <var>outsideSettings</var>, <span>this</span >'s <span>worklet
123987
- destination type</span>, <var>options</var>["<code
123995
+ <var>workletInstance</var >'s <span data-x="concept-Worklet-global-scopes">global
123996
+ scopes</ span>, <span> queue a global task</span> on the <span>networking task source</span>
123997
+ given <var>workletGlobalScope</var> to <span>fetch a worklet script graph</span> given
123998
+ <var>moduleURLRecord</var>, <var>outsideSettings</var>, <var>workletInstance</var >'s
123999
+ <span>worklet destination type</span>, <var>options</var>["<code
123988
124000
data-x="dom-WorkletOptions-credentials">credentials</code>"], <var>workletGlobalScope</var>'s
123989
- <span>relevant settings object</span>, <span>this</span >'s <span
124001
+ <span>relevant settings object</span>, <var>workletInstance</var >'s <span
123990
124002
data-x="concept-Worklet-module-responses-map">module responses map</span>, and the following
123991
124003
steps given <var>script</var>:</p>
123992
124004
123993
124005
<p class="note">Only the first of these fetches will actually perform a network request; the
123994
124006
ones for other <code>WorkletGlobalScope</code>s will reuse <span
123995
- data-x="concept-response">responses</span> from <span>this</span >'s <span
124007
+ data-x="concept-response">responses</span> from <var>workletInstance</var >'s <span
123996
124008
data-x="concept-Worklet-module-responses-map">module responses map</span>.</p>
123997
124009
123998
124010
<ol>
@@ -124002,7 +124014,7 @@ dictionary <dfn dictionary>WorkletOptions</dfn> {
124002
124014
<ol>
124003
124015
<li>
124004
124016
<p><span>Queue a global task</span> on the <span>networking task source</span> given
124005
- <span>this</span >'s <span>relevant global object</span> to perform the following
124017
+ <var>workletInstance</var >'s <span>relevant global object</span> to perform the following
124006
124018
steps:</p>
124007
124019
124008
124020
<ol>
@@ -124030,7 +124042,7 @@ dictionary <dfn dictionary>WorkletOptions</dfn> {
124030
124042
<ol>
124031
124043
<li>
124032
124044
<p><span>Queue a global task</span> on the <span>networking task source</span> given
124033
- <span>this</span >'s <span>relevant global object</span> to perform the following
124045
+ <var>workletInstance</var >'s <span>relevant global object</span> to perform the following
124034
124046
steps:</p>
124035
124047
124036
124048
<ol>
@@ -124056,8 +124068,8 @@ dictionary <dfn dictionary>WorkletOptions</dfn> {
124056
124068
124057
124069
<ol>
124058
124070
<li><p><span data-x="list append">Append</span> <var>moduleURLRecord</var> to
124059
- <span>this</span >'s <span data-x="concept-Worklet-added-modules-list">added modules
124060
- list</span>.</p></li>
124071
+ <var>workletInstance</var >'s <span data-x="concept-Worklet-added-modules-list">added
124072
+ modules list</span>.</p></li>
124061
124073
124062
124074
<li><p>Set <var>addedSuccessfully</var> to true.</p></li>
124063
124075
</ol>
@@ -124066,9 +124078,9 @@ dictionary <dfn dictionary>WorkletOptions</dfn> {
124066
124078
<li><p><span>Run a module script</span> given <var>script</var>.</p></li>
124067
124079
124068
124080
<li>
124069
- <p><span>Queue a global task</span> on the
124070
- <span>networking task source</span> given <span>this </span>'s <span>relevant global
124071
- object</span> to perform the following steps:</p>
124081
+ <p><span>Queue a global task</span> on the <span>networking task source</span> given
124082
+ <var>workletInstance</var>'s <span>relevant global object </span> to perform the following
124083
+ steps:</p>
124072
124084
124073
124085
<ol>
124074
124086
<li>
0 commit comments