diff options
Diffstat (limited to 'src/js')
-rw-r--r-- | src/js/binaryen.js-post.js | 26 |
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, |