@@ -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