summaryrefslogtreecommitdiff
path: root/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js')
-rw-r--r--src/js/binaryen.js-post.js20
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']();