Skip to content

Conversation

kripken
Copy link
Member

@kripken kripken commented Aug 11, 2025

Pretty straightforward: Add an exception tag to ContData, and throw if
it is set.

With this, the next big spec test passes.

Throwing from the first resumption is not in the spec test, so add that
manually (for us, but I guess not the spec interpreter, this checks
another code path).

This uncovered an existing bug with StackValueNoter. We added one of
these during Resume, to ensure a stack value noting scope always
existed. But we track those by ModuleRunner, so it doesn't help when we
do a cross-module suspend. Just remove that extra logic, and handle the
lack of a scope directly, which makes this all a lot simpler. (This could be
broken out into another PR, but testing it would be tricky by itself.)

@kripken kripken requested a review from tlively August 11, 2025 20:26
@@ -844,4 +844,24 @@
)
)
)

(func $never
Copy link
Member

Choose a reason for hiding this comment

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

How would you feel about upstreaming this to the spec tests?

Copy link
Member Author

@kripken kripken Aug 11, 2025

Choose a reason for hiding this comment

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

@kripken kripken merged commit 5dae9f4 into WebAssembly:main Aug 12, 2025
31 of 32 checks passed
@kripken kripken deleted the resume_throw branch August 12, 2025 00:10
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.

2 participants