summaryrefslogtreecommitdiff
path: root/test/binaryen.js/exception-handling.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/binaryen.js/exception-handling.js')
-rw-r--r--test/binaryen.js/exception-handling.js35
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_));