Skip to content

Commit ca18f25

Browse files
authored
Expose try for exception handling (#2110)
1 parent 5757fa8 commit ca18f25

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

src/module.ts

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1613,23 +1613,29 @@ export class Module {
16131613

16141614
// exception handling
16151615

1616-
// try(
1617-
// body: ExpressionRef,
1618-
// catchTags: string[],
1619-
// catchBodies: ExpressionRef[]
1620-
// ): ExpressionRef {
1621-
// var numCatchTags = catchTags.length;
1622-
// var strs = new Array<TagRef>(numCatchTags);
1623-
// for (let i = 0; i < numCatchTags; ++i) {
1624-
// strs[i] = this.allocStringCached(catchTags[i]);
1625-
// }
1626-
// var cArr1 = allocPtrArray(strs);
1627-
// var cArr2 = allocPtrArray(catchBodies);
1628-
// var ret = binaryen._BinaryenTry(this.ref, body, cArr1, numCatchTags, cArr2, catchBodies.length);
1629-
// binaryen._free(cArr2);
1630-
// binaryen._free(cArr1);
1631-
// return ret;
1632-
// }
1616+
try(
1617+
name: string | null,
1618+
body: ExpressionRef,
1619+
catchTags: string[],
1620+
catchBodies: ExpressionRef[],
1621+
delegateTarget: string | null = null
1622+
): ExpressionRef {
1623+
var numCatchTags = catchTags.length;
1624+
var strs = new Array<TagRef>(numCatchTags);
1625+
for (let i = 0; i < numCatchTags; ++i) {
1626+
strs[i] = this.allocStringCached(catchTags[i]);
1627+
}
1628+
var cArr1 = allocPtrArray(strs);
1629+
var cArr2 = allocPtrArray(catchBodies);
1630+
var cStr1 = this.allocStringCached(name);
1631+
var cStr2 = this.allocStringCached(delegateTarget);
1632+
var ret = binaryen._BinaryenTry(
1633+
this.ref, cStr1, body, cArr1, numCatchTags, cArr2, catchBodies.length, cStr2
1634+
);
1635+
binaryen._free(cArr2);
1636+
binaryen._free(cArr1);
1637+
return ret;
1638+
}
16331639

16341640
throw(
16351641
tagName: string,

0 commit comments

Comments
 (0)