Commit 05725e5
committed
WebAssembly exception-handling support.
This PR introduces support for the [Wasm exception-handling proposal],
which introduces a conventional try/catch mechanism to WebAssembly. The
PR supports modules that use `try_table` to register handlers for a
lexical scope; and provides `throw` and `throw_ref` that allocate (in
the first case) and throw exception objects.
This PR builds on top of the work in #10510 for Cranelift-level
exception support, #10919 for an unwinder, and #11230 for exception
objects built on top of GC, in addition a bunch of smaller fix and
enabling PRs around those.
[Wasm exception-handling proposal]: https://github.com/WebAssembly/exception-handling/1 parent f206a3e commit 05725e5
93 files changed
Lines changed: 2479 additions & 646 deletions
File tree
- cranelift
- codegen/src/isa/aarch64/inst
- filetests/src
- crates
- cli-flags/src
- cranelift
- src
- func_environ
- gc
- enabled
- translate
- environ/src
- compile
- gc
- fuzzing/src/generators
- unwinder/src
- wasmtime/src
- runtime
- gc/enabled
- store
- trampoline
- vm
- gc
- enabled
- traphandlers
- src/commands
- tests
- all
- disas
- gc
- pulley
- winch
- aarch64/call_indirect
- x64
- atomic
- notify
- wait
- call_indirect
- epoch
- f32_ceil
- f32_floor
- f32_nearest
- f32_trunc
- f64_ceil
- f64_floor
- f64_nearest
- f64_trunc
- fuel
- load
- table
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
61 | 62 | | |
62 | 63 | | |
63 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
976 | 976 | | |
977 | 977 | | |
978 | 978 | | |
979 | | - | |
| 979 | + | |
980 | 980 | | |
981 | 981 | | |
982 | 982 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
651 | | - | |
652 | | - | |
| 651 | + | |
| 652 | + | |
653 | 653 | | |
654 | 654 | | |
655 | 655 | | |
656 | | - | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
657 | 669 | | |
658 | 670 | | |
659 | 671 | | |
660 | 672 | | |
661 | | - | |
| 673 | + | |
662 | 674 | | |
663 | 675 | | |
664 | 676 | | |
665 | | - | |
666 | 677 | | |
667 | 678 | | |
668 | 679 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
401 | 401 | | |
402 | 402 | | |
403 | 403 | | |
404 | | - | |
405 | | - | |
406 | 404 | | |
407 | 405 | | |
408 | 406 | | |
| |||
1029 | 1027 | | |
1030 | 1028 | | |
1031 | 1029 | | |
1032 | | - | |
1033 | | - | |
1034 | | - | |
1035 | | - | |
1036 | | - | |
1037 | | - | |
1038 | | - | |
1039 | 1030 | | |
1040 | 1031 | | |
1041 | 1032 | | |
| |||
1060 | 1051 | | |
1061 | 1052 | | |
1062 | 1053 | | |
| 1054 | + | |
1063 | 1055 | | |
1064 | 1056 | | |
1065 | 1057 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
| 37 | + | |
37 | 38 | | |
38 | 39 | | |
39 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
| 17 | + | |
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
35 | 36 | | |
36 | 37 | | |
37 | 38 | | |
| 39 | + | |
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| |||
525 | 527 | | |
526 | 528 | | |
527 | 529 | | |
| 530 | + | |
528 | 531 | | |
529 | 532 | | |
530 | 533 | | |
| |||
547 | 550 | | |
548 | 551 | | |
549 | 552 | | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
550 | 558 | | |
551 | 559 | | |
552 | 560 | | |
| |||
564 | 572 | | |
565 | 573 | | |
566 | 574 | | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
567 | 584 | | |
568 | 585 | | |
569 | 586 | | |
| |||
1324 | 1341 | | |
1325 | 1342 | | |
1326 | 1343 | | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
1327 | 1359 | | |
1328 | 1360 | | |
1329 | 1361 | | |
| |||
1413 | 1445 | | |
1414 | 1446 | | |
1415 | 1447 | | |
1416 | | - | |
1417 | | - | |
1418 | | - | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
1419 | 1451 | | |
1420 | | - | |
1421 | | - | |
1422 | | - | |
1423 | | - | |
1424 | | - | |
1425 | | - | |
1426 | | - | |
1427 | | - | |
1428 | | - | |
1429 | 1452 | | |
1430 | 1453 | | |
1431 | | - | |
| 1454 | + | |
1432 | 1455 | | |
1433 | | - | |
| 1456 | + | |
1434 | 1457 | | |
| 1458 | + | |
1435 | 1459 | | |
1436 | 1460 | | |
1437 | 1461 | | |
| |||
0 commit comments