diff options
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/binaryen.js-post.js | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 37d2432cb..1f2c414e5 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -42,6 +42,26 @@ Module['exnref'] = Module['_BinaryenTypeExnref'](); Module['unreachable'] = Module['_BinaryenTypeUnreachable'](); Module['auto'] = /* deprecated */ Module['undefined'] = Module['_BinaryenTypeAuto'](); +Module['createType'] = function(types) { + return preserveStack(function() { + var array = i32sToStack(types); + return Module['_BinaryenTypeCreate'](array, types.length); + }); +}; + +Module['expandType'] = function(ty) { + return preserveStack(function() { + var numTypes = Module['_BinaryenTypeArity'](ty); + var array = stackAlloc(numTypes << 2); + Module['_BinaryenTypeExpand'](ty, array); + var types = []; + for (var i = 0; i < numTypes; i++) { + types.push(HEAPU32[(array >>> 2) + i]); + } + return types; + }); +}; + // Expression ids Module['InvalidId'] = Module['_BinaryenInvalidId'](); Module['BlockId'] = Module['_BinaryenBlockId'](); |