summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r--src/js/binaryen.js-post.js26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 2ac2605fa..63be4d446 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -2147,9 +2147,9 @@ function wrapModule(module, self = {}) {
}
};
- self['try'] = function(body, catchEvents, catchBodies) {
+ self['try'] = function(name, body, catchEvents, catchBodies, delegateTarget) {
return preserveStack(() =>
- Module['_BinaryenTry'](module, body, i32sToStack(catchEvents.map(strToStack)), catchEvents.length, i32sToStack(catchBodies), catchBodies.length));
+ Module['_BinaryenTry'](module, name ? strToStack(name) : 0, body, i32sToStack(catchEvents.map(strToStack)), catchEvents.length, i32sToStack(catchBodies), catchBodies.length, delegateTarget ? strToStack(delegateTarget) : 0));
};
self['throw'] = function(event_, operands) {
return preserveStack(() => Module['_BinaryenThrow'](module, strToStack(event_), i32sToStack(operands), operands.length));
@@ -2897,10 +2897,13 @@ Module['getExpressionInfo'] = function(expr) {
return {
'id': id,
'type': type,
+ 'name': UTF8ToString(Module['_BinaryenTryGetName'](expr)),
'body': Module['_BinaryenTryGetBody'](expr),
'catchEvents': getAllNested(expr, Module['_BinaryenTryGetNumCatchEvents'], Module['_BinaryenTryGetCatchEventAt']),
'catchBodies': getAllNested(expr, Module['_BinaryenTryGetNumCatchBodies'], Module['_BinaryenTryGetCatchBodyAt']),
- 'hasCatchAll': Module['_BinaryenTryHasCatchAll'](expr)
+ 'hasCatchAll': Module['_BinaryenTryHasCatchAll'](expr),
+ 'delegateTarget': UTF8ToString(Module['_BinaryenTryGetDelegateTarget'](expr)),
+ 'isDelegate': Module['_BinaryenTryIsDelegate'](expr)
};
case Module['ThrowId']:
return {
@@ -4172,6 +4175,13 @@ Module['RefEq'] = makeExpressionWrapper({
});
Module['Try'] = makeExpressionWrapper({
+ 'getName'(expr) {
+ const name = Module['_BinaryenTryGetName'](expr);
+ return name ? UTF8ToString(name) : null;
+ },
+ 'setName'(expr, name) {
+ preserveStack(() => { Module['_BinaryenTrySetName'](expr, strToStack(name)) });
+ },
'getBody'(expr) {
return Module['_BinaryenTryGetBody'](expr);
},
@@ -4231,6 +4241,16 @@ Module['Try'] = makeExpressionWrapper({
'hasCatchAll'(expr) {
return Boolean(Module['_BinaryenTryHasCatchAll'](expr));
},
+ 'getDelegateTarget'(expr) {
+ const name = Module['_BinaryenTryGetDelegateTarget'](expr);
+ return name ? UTF8ToString(name) : null;
+ },
+ 'setDelegateTarget'(expr, name) {
+ preserveStack(() => { Module['_BinaryenTrySetDelegateTarget'](expr, strToStack(name)) });
+ },
+ 'isDelegate'(expr) {
+ return Boolean(Module['_BinaryenTryIsDelegate'](expr));
+ }
});
Module['Throw'] = makeExpressionWrapper({