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, 26 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 49b02d336..44dc7174b 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -95,6 +95,8 @@ function initializeConstants() {
'Throw',
'Rethrow',
'BrOnExn',
+ 'TupleMake',
+ 'TupleExtract',
'Push',
'Pop'
].forEach(function(name) {
@@ -2091,6 +2093,17 @@ function wrapModule(module, self) {
return Module['_BinaryenPush'](module, value);
};
+ self['tuple'] = {
+ 'make': function(elements) {
+ return preserveStack(function() {
+ return Module['_BinaryenTupleMake'](module, i32sToStack(elements), elements.length);
+ });
+ },
+ 'extract': function(tuple, index) {
+ return Module['_BinaryenTupleExtract'](module, tuple, index);
+ }
+ };
+
// 'Module' operations
self['addFunction'] = function(name, params, results, varTypes, body) {
return preserveStack(function() {
@@ -2790,6 +2803,19 @@ Module['getExpressionInfo'] = function(expr) {
'event': UTF8ToString(Module['_BinaryenBrOnExnGetEvent'](expr)),
'exnref': Module['_BinaryenBrOnExnGetExnref'](expr)
};
+ case Module['TupleMakeId']:
+ return {
+ 'id': id,
+ 'type': type,
+ 'operands': getAllNested(expr, Module['_BinaryenTupleMakeGetNumOperands'], Module['_BinaryenTupleMakeGetOperand'])
+ };
+ case Module['TupleExtractId']:
+ return {
+ 'id': id,
+ 'type': type,
+ 'tuple': Module['_BinaryenTupleExtractGetTuple'](expr),
+ 'index': Module['_BinaryenTupleExtractGetIndex'](expr)
+ };
case Module['PushId']:
return {
'id': id,