Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tighter typing of Break #180

Merged
merged 2 commits into from
Nov 19, 2015
Merged

Tighter typing of Break #180

merged 2 commits into from
Nov 19, 2015

Conversation

rossberg
Copy link
Member

Disallows redundant arguments to a break targeting a label of type None (addresses #179).

Conceptually, there is no specific harm in allowing this, but it also is not useful. Rather be consistent with the checking for calls.

@jcbeyler
Copy link

Looks good to me :)

@@ -24,7 +24,7 @@
(loop $exit $cont
(set_local $i (i32.add (get_local $i) (i32.const 1)))
(if (i32.eq (get_local $i) (i32.const 5))
(br $cont (i32.const -1))
(br $cont)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps also add an assert_invalid test?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@lukewagner
Copy link
Member

lgtm

rossberg added a commit that referenced this pull request Nov 19, 2015
@rossberg rossberg merged commit f0c8acb into master Nov 19, 2015
@rossberg rossberg deleted the break-type branch November 19, 2015 14:52
ngzhian pushed a commit to ngzhian/spec that referenced this pull request Nov 4, 2021
dhil pushed a commit to dhil/webassembly-spec that referenced this pull request Mar 2, 2023
…ebAssembly#180)

* Update core formal spec to the current (3rd) EH proposal

As described in `proposals/exceptions/Exceptions.md` and in
`proposals/exceptions/Exceptions-formal-overview.md`.

* Detailed changes from the previous (2nd proposal) formal spec:

  - Removed:
    + the reference type "exnref" is removed,
    + the administrative instruction "REFEXNADDR" is removed,
    + Release dependencies "bulk instructions" and "reference types" are removed.
  - Renamed:
    + "exn" and (most occurrences of) "exception" renamed to "tag",
    + "EITYPE" renamed to "TAGITYPE",
    + "ETYPE" renamed to "TAGTYPE",
    + variable names for tags changed from "et" to "tt" or "tagt" and "iet" to "itagt",
    + "CATCHN" is renamed to "CATCHadm".
    + "THROWADDR" is renamed to "THROWadm".
  - Adjusted:
    + syntax and rules for "TRY-CATCH", "RETHROW", and "CATCHadm",
    + folded text format for "TRY-CATCH",
    + validation example of control frame with opcode catch.
  - Added:
    + validation example of control frame with opcode catch_all,
    + administrative instructions "CAUGHTadm" and "DELEGATEadm" with rules,
    + syntax and rules for "TRY-DELEGATE".
  - Most prose that is changing in the 3rd spec is removed and several temporary `..todo::` sections are added.
    + These will be updated in followup PRs.

Co-authored-by: Heejin Ahn <aheejin@gmail.com>
Co-authored-by: Andreas Rossberg <rossberg@mpi-sws.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants