diff options
author | jgravelle-google <jgravelle@google.com> | 2017-10-03 10:30:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-03 10:30:50 -0700 |
commit | 8283229f6bccdcfa60d7613be10d0f93531fdd34 (patch) | |
tree | 538aa36a6bb1b6d012ce5a7512345f628e68d494 /src/ast/trapping.h | |
parent | 1f8d8a53e8fcee0791c11345fd7f328255cfa22c (diff) | |
download | binaryen-8283229f6bccdcfa60d7613be10d0f93531fdd34.tar.gz binaryen-8283229f6bccdcfa60d7613be10d0f93531fdd34.tar.bz2 binaryen-8283229f6bccdcfa60d7613be10d0f93531fdd34.zip |
Add --trap-mode=allow/clamp/js argument to asm2wasm and s2wasm (#1210)
* Add --trap-mode=allow/clamp/js argument to asm2wasm and s2wasm
* Update asm2wasm and auto_update_tests scripts to use --trap-mode
* Throw std::invalid_argument instead of adding a new Invalid TrapMode type
* Remove legacy asm2wasm trap mode arguments
Diffstat (limited to 'src/ast/trapping.h')
-rw-r--r-- | src/ast/trapping.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/ast/trapping.h b/src/ast/trapping.h index 80cc14da9..184e6059b 100644 --- a/src/ast/trapping.h +++ b/src/ast/trapping.h @@ -17,6 +17,8 @@ #ifndef wasm_ast_trapping_h #define wasm_ast_trapping_h +#include <exception> + #include "pass.h" namespace wasm { @@ -95,6 +97,20 @@ private: Expression* makeTrappingBinary(Binary* curr, TrappingFunctionContainer &trappingFunctions); Expression* makeTrappingUnary(Unary* curr, TrappingFunctionContainer &trappingFunctions); +inline TrapMode trapModeFromString(std::string const& str) { + if (str == "allow") { + return TrapMode::Allow; + } else if (str == "clamp") { + return TrapMode::Clamp; + } else if (str == "js") { + return TrapMode::JS; + } else { + throw std::invalid_argument( + "Unsupported trap mode \"" + str + "\". " + "Valid modes are \"allow\", \"js\", and \"clamp\""); + } +} + } // wasm #endif // wasm_ast_trapping_h |