diff options
Diffstat (limited to 'test/binaryen.js/exception-handling.js')
-rw-r--r-- | test/binaryen.js/exception-handling.js | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/test/binaryen.js/exception-handling.js b/test/binaryen.js/exception-handling.js index 3f5f6de74..e6cadcf88 100644 --- a/test/binaryen.js/exception-handling.js +++ b/test/binaryen.js/exception-handling.js @@ -1,7 +1,9 @@ function cleanInfo(info) { var ret = {}; for (var x in info) { - if (x == 'id' || x == 'type' || x == 'name' || x == 'event') { + // Filter out address pointers and only print meaningful info + if (x == 'id' || x == 'type' || x == 'name' || x == 'event' || + x == 'depth' || x == 'hasCatchAll') { ret[x] = info[x]; } } @@ -23,36 +25,31 @@ var event_ = module.addEvent("e", 0, binaryen.i32, binaryen.none); // (throw $e (i32.const 0)) // ) // (catch -// ;; We don't support multi-value yet. Use locals instead. -// (local.set 0 (exnref.pop)) -// (drop -// (block $l (result i32) -// (rethrow -// (br_on_exn $l $e (local.get 0)) -// ) -// ) -// ) +// (drop (pop i32)) +// (rethrow 0) // ) // ) var throw_ = module.throw("e", [module.i32.const(0)]); -var br_on_exn = module.br_on_exn("l", "e", module.local.get(0, binaryen.exnref)); -var rethrow = module.rethrow(br_on_exn); +var rethrow = module.rethrow(0); var try_ = module.try( throw_, - module.block(null, [ - module.local.set(0, module.exnref.pop()), - module.drop( - module.block("l", [rethrow], binaryen.i32) + ["e"], + [ + module.block(null, + [ + module.drop(module.i32.pop()), + rethrow + ], + binaryen.none ) ] - ) ); -var func = module.addFunction("test", binaryen.none, binaryen.none, [binaryen.exnref], try_); + +var func = module.addFunction("test", binaryen.none, binaryen.none, [], try_); console.log(module.emitText()); assert(module.validate()); console.log("getExpressionInfo(throw) = " + stringify(throw_)); -console.log("getExpressionInfo(br_on_exn) = " + stringify(br_on_exn)); console.log("getExpressionInfo(rethrow) = " + stringify(rethrow)); console.log("getExpressionInfo(try) = " + stringify(try_)); |