Skip to content

Commit 7315f7f

Browse files
committed
Merge remote-tracking branch 'exn/main' into wasm-3.0
2 parents 349929a + 6ca3310 commit 7315f7f

File tree

2 files changed

+35
-35
lines changed

2 files changed

+35
-35
lines changed

.github/workflows/ci-spec.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
- name: Run Bikeshed
3636
run: cd document/core && make bikeshed
3737
- name: Upload artifact
38-
uses: actions/upload-artifact@v2
38+
uses: actions/upload-artifact@v4
3939
with:
4040
name: core-rendered
4141
path: document/core/_build/html
@@ -50,7 +50,7 @@ jobs:
5050
- name: Run Bikeshed
5151
run: bikeshed spec "document/js-api/index.bs" "document/js-api/index.html"
5252
- name: Upload artifact
53-
uses: actions/upload-artifact@v2
53+
uses: actions/upload-artifact@v4
5454
with:
5555
name: js-api-rendered
5656
path: document/js-api/index.html
@@ -65,7 +65,7 @@ jobs:
6565
- name: Run Bikeshed
6666
run: bikeshed spec "document/web-api/index.bs" "document/web-api/index.html"
6767
- name: Upload artifact
68-
uses: actions/upload-artifact@v2
68+
uses: actions/upload-artifact@v4
6969
with:
7070
name: web-api-rendered
7171
path: document/web-api/index.html
@@ -104,7 +104,7 @@ jobs:
104104
- name: Build main spec
105105
run: cd document/legacy/exceptions/core && make main
106106
- name: Upload artifact
107-
uses: actions/upload-artifact@v2
107+
uses: actions/upload-artifact@v4
108108
with:
109109
name: legacy-exceptions-core-rendered
110110
path: document/legacy/exceptions/core/_build/html
@@ -119,7 +119,7 @@ jobs:
119119
- name: Run Bikeshed
120120
run: bikeshed spec "document/legacy/exceptions/js-api/index.bs" "document/legacy/exceptions/js-api/index.html"
121121
- name: Upload artifact
122-
uses: actions/upload-artifact@v2
122+
uses: actions/upload-artifact@v4
123123
with:
124124
name: legacy-exceptions-js-api-rendered
125125
path: document/legacy/exceptions/js-api/index.html
@@ -133,17 +133,17 @@ jobs:
133133
- name: Create output directory
134134
run: mkdir _output && cp document/index.html _output/index.html
135135
- name: Download core spec artifact
136-
uses: actions/download-artifact@v2
136+
uses: actions/download-artifact@v4
137137
with:
138138
name: core-rendered
139139
path: _output/core
140140
- name: Download JS API spec artifact
141-
uses: actions/download-artifact@v2
141+
uses: actions/download-artifact@v4
142142
with:
143143
name: js-api-rendered
144144
path: _output/js-api
145145
- name: Download Web API spec artifact
146-
uses: actions/download-artifact@v2
146+
uses: actions/download-artifact@v4
147147
with:
148148
name: web-api-rendered
149149
path: _output/web-api
@@ -153,12 +153,12 @@ jobs:
153153
name: code-metadata-rendered
154154
path: _output/metadata/code
155155
- name: Download legacy exceptions core spec artifact
156-
uses: actions/download-artifact@v2
156+
uses: actions/download-artifact@v4
157157
with:
158158
name: legacy-exceptions-core-rendered
159159
path: _output/legacy/exceptions/core
160160
- name: Download legacy exceptions JS API spec artifact
161-
uses: actions/download-artifact@v2
161+
uses: actions/download-artifact@v4
162162
with:
163163
name: legacy-exceptions-js-api-rendered
164164
path: _output/legacy/exceptions/js-api

document/core/exec/instructions.rst

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4068,75 +4068,75 @@ Control Instructions
40684068
:math:`\THROWREF`
40694069
.................
40704070

4071-
1. Let :math:`F` be the :ref:`current <exec-notation-textual>` :ref:`frame <syntax-frame>`.
4072-
4073-
2. Assert: due to :ref:`validation <valid-throw_ref>`, a :ref:`reference <syntax-ref>` is on the top of the stack.
4071+
1. Assert: due to :ref:`validation <valid-throw_ref>`, a :ref:`reference <syntax-ref>` is on the top of the stack.
40744072

4075-
3. Pop the reference :math:`\reff` from the stack.
4073+
2. Pop the reference :math:`\reff` from the stack.
40764074

4077-
4. If :math:`\reff` is :math:`\REFNULL~\X{ht}`, then:
4075+
3. If :math:`\reff` is :math:`\REFNULL~\X{ht}`, then:
40784076

40794077
a. Trap.
40804078

4081-
5. Assert: due to :ref:`validation <valid-throw_ref>`, :math:`\reff` is an :ref:`exception reference <syntax-ref.exn>`.
4079+
4. Assert: due to :ref:`validation <valid-throw_ref>`, :math:`\reff` is an :ref:`exception reference <syntax-ref.exn-addr>`.
40824080

4083-
6. Let :math:`\REFEXNADDR~\X{ea}` be :math:`\reff`.
4081+
5. Let :math:`\REFEXNADDR~\X{ea}` be :math:`\reff`.
40844082

4085-
7. Assert: due to :ref:`validation <valid-throw_ref>`, :math:`S.\SEXNS[\X{ea}]` exists.
4083+
6. Assert: due to :ref:`validation <valid-throw_ref>`, :math:`S.\SEXNS[\X{ea}]` exists.
40864084

4087-
8. Let :math:`\X{exn}` be the :ref:`exception instance <syntax-exninst>` :math:`S.\SEXNS[\X{ea}]`.
4085+
7. Let :math:`\X{exn}` be the :ref:`exception instance <syntax-exninst>` :math:`S.\SEXNS[\X{ea}]`.
40884086

4089-
9. Let :math:`a` be the :ref:`tag address <syntax-tagaddr>` :math:`\X{exn}.\EITAG`.
4087+
8. Let :math:`a` be the :ref:`tag address <syntax-tagaddr>` :math:`\X{exn}.\EITAG`.
40904088

4091-
10. While the stack is not empty and the top of the stack is not an :ref:`exception handler <syntax-handler>`, do:
4089+
9. While the stack is not empty and the top of the stack is not an :ref:`exception handler <syntax-handler>`, do:
40924090

40934091
a. Pop the top element from the stack.
40944092

4095-
11. Assert: the stack is now either empty, or there is an exception handler on the top of the stack.
4093+
10. Assert: the stack is now either empty, or there is an exception handler on the top of the stack.
40964094

4097-
12. If the stack is empty, then:
4095+
11. If the stack is empty, then:
40984096

40994097
a. Return the exception :math:`(\REFEXNADDR~a)` as a :ref:`result <syntax-result>`.
41004098

4101-
13. Assert: there is an :ref:`exception handler <syntax-handler>` on the top of the stack.
4099+
12. Assert: there is an :ref:`exception handler <syntax-handler>` on the top of the stack.
41024100

4103-
14. Pop the exception handler :math:`\HANDLER_n\{\catch^\ast\}` from the stack.
4101+
13. Pop the exception handler :math:`\HANDLER_n\{\catch^\ast\}` from the stack.
41044102

4105-
15. If :math:`\catch^\ast` is empty, then:
4103+
14. If :math:`\catch^\ast` is empty, then:
41064104

41074105
a. Push the exception reference :math:`\REFEXNADDR~\X{ea}` back to the stack.
41084106

41094107
b. Execute the instruction |THROWREF| again.
41104108

4111-
16. Else:
4109+
15. Else:
41124110

4113-
a. Let :math:`\catch_1` be the first :ref:`catch clause <syntax-catch>` in :math:`\catch^\ast` and :math:`{\catch'}^\ast` the remaining clauses.
4111+
a. Let :math:`F` be the :ref:`current <exec-notation-textual>` :ref:`frame <syntax-frame>`.
41144112

4115-
b. If :math:`\catch_1` is of the form :math:`\CATCH~x~l` and the :ref:`tag address <syntax-tagaddr>` :math:`a` equals :math:`F.\AMODULE.\MITAGS[x]`, then:
4113+
b. Let :math:`\catch_1` be the first :ref:`catch clause <syntax-catch>` in :math:`\catch^\ast` and :math:`{\catch'}^\ast` the remaining clauses.
4114+
4115+
c. If :math:`\catch_1` is of the form :math:`\CATCH~x~l` and the :ref:`tag address <syntax-tagaddr>` :math:`a` equals :math:`F.\AMODULE.\MITAGS[x]`, then:
41164116

41174117
i. Push the values :math:`\X{exn}.\EIFIELDS` to the stack.
41184118

41194119
ii. Execute the instruction :math:`\BR~l`.
41204120

4121-
c. Else if :math:`\catch_1` is of the form :math:`\CATCHREF~x~l` and the :ref:`tag address <syntax-tagaddr>` :math:`a` equals :math:`F.\AMODULE.\MITAGS[x]`, then:
4121+
d. Else if :math:`\catch_1` is of the form :math:`\CATCHREF~x~l` and the :ref:`tag address <syntax-tagaddr>` :math:`a` equals :math:`F.\AMODULE.\MITAGS[x]`, then:
41224122

41234123
i. Push the values :math:`\X{exn}.\EIFIELDS` to the stack.
41244124

41254125
ii. Push the exception reference :math:`\REFEXNADDR~\X{ea}` to the stack.
41264126

41274127
iii. Execute the instruction :math:`\BR~l`.
41284128

4129-
d. Else if :math:`\catch_1` is of the form :math:`\CATCHALL~l`, then:
4129+
e. Else if :math:`\catch_1` is of the form :math:`\CATCHALL~l`, then:
41304130

41314131
i. Execute the instruction :math:`\BR~l`.
41324132

4133-
e. Else if :math:`\catch_1` is of the form :math:`\CATCHALLREF~l`, then:
4133+
f. Else if :math:`\catch_1` is of the form :math:`\CATCHALLREF~l`, then:
41344134

41354135
i. Push the exception reference :math:`\REFEXNADDR~\X{ea}` to the stack.
41364136

41374137
ii. Execute the instruction :math:`\BR~l`.
41384138

4139-
f. Else:
4139+
g. Else:
41404140

41414141
1. Push the modified handler :math:`\HANDLER_n\{{\catch'}^\ast\}` back to the stack.
41424142

@@ -4737,9 +4737,9 @@ The following auxiliary rules define the semantics of entering and exiting |TRYT
47374737
Entering :math:`\instr^\ast` with label :math:`L` and exception handler :math:`H`
47384738
.................................................................................
47394739

4740-
1. Push :math:`L` to the stack.
4740+
1. Push :math:`H` to the stack.
47414741

4742-
2. Push :math:`H` onto the stack.
4742+
2. Push :math:`L` onto the stack.
47434743

47444744
3. Jump to the start of the instruction sequence :math:`\instr^\ast`.
47454745

0 commit comments

Comments
 (0)