Skip to content

Commit

Permalink
Editorial: add [[AgentSignifier]] to Realm Record (tc39#3058)
Browse files Browse the repository at this point in the history
Fixes tc39#1357
  • Loading branch information
syg authored and ljharb committed May 19, 2023
1 parent d95f42d commit 1153003
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions spec.html
Original file line number Diff line number Diff line change
Expand Up @@ -11466,6 +11466,17 @@ <h1>Realms</h1>
Meaning
</th>
</tr>
<tr>
<td>
[[AgentSignifier]]
</td>
<td>
an agent signifier
</td>
<td>
The agent that owns this realm
</td>
</tr>
<tr>
<td>
[[Intrinsics]]
Expand Down Expand Up @@ -11546,6 +11557,7 @@ <h1>CreateRealm ( ): a Realm Record</h1>
<emu-alg>
1. Let _realmRec_ be a new Realm Record.
1. Perform CreateIntrinsics(_realmRec_).
1. Set _realmRec_.[[AgentSignifier]] to AgentSignifier().
1. Set _realmRec_.[[GlobalObject]] to *undefined*.
1. Set _realmRec_.[[GlobalEnv]] to *undefined*.
1. Set _realmRec_.[[TemplateMap]] to a new empty List.
Expand Down Expand Up @@ -12003,11 +12015,11 @@ <h1>InitializeHostDefinedRealm ( ): either a normal completion containing ~unuse
<h1>Agents</h1>

<p>An <dfn id="agent" variants="agents">agent</dfn> comprises a set of ECMAScript execution contexts, an execution context stack, a running execution context, an <dfn id="agent-record" variants="Agent Records">Agent Record</dfn>, and an <dfn id="executing-thread" variants="executing threads">executing thread</dfn>. Except for the executing thread, the constituents of an agent belong exclusively to that agent.</p>
<p>An agent's executing thread executes a job on the agent's execution contexts independently of other agents, except that an executing thread may be used as the executing thread by multiple agents, provided none of the agents sharing the thread have an Agent Record whose [[CanBlock]] field is *true*.</p>
<p>An agent's executing thread executes algorithmic steps on the agent's execution contexts independently of other agents, except that an executing thread may be used as the executing thread by multiple agents, provided none of the agents sharing the thread have an Agent Record whose [[CanBlock]] field is *true*.</p>
<emu-note>
<p>Some web browsers share a single executing thread across multiple unrelated tabs of a browser window, for example.</p>
</emu-note>
<p>While an agent's executing thread executes jobs, the agent is the <dfn id="surrounding-agent" variants="surrounding agents">surrounding agent</dfn> for the code in those jobs. The code uses the surrounding agent to access the specification-level execution objects held within the agent: the running execution context, the execution context stack, and the Agent Record's fields.</p>
<p>While an agent's executing thread is executing algorithmic steps, the agent is the <dfn id="surrounding-agent" variants="surrounding agents">surrounding agent</dfn> for those steps. The steps use the surrounding agent to access the specification-level execution objects held within the agent: the running execution context, the execution context stack, and the Agent Record's fields.</p>
<p>An <dfn variants="agent signifiers">agent signifier</dfn> is a globally-unique opaque value used to identify an Agent.</p>
<emu-table id="table-agent-record" caption="Agent Record Fields">
<table>
Expand Down

0 comments on commit 1153003

Please sign in to comment.