summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
authorMax Graey <maxgraey@gmail.com>2021-10-18 22:48:50 +0300
committerGitHub <noreply@github.com>2021-10-18 12:48:50 -0700
commitf0a8de302b85441deb8864c9e20c561c934e27b8 (patch)
treeb71e540462b865891a0b63d25b0b16b9653fd04a /src/js/binaryen.js-post.js
parent0bec0a4bbaf4859bb4c7a2f1c4ecda60ccab72f2 (diff)
downloadbinaryen-f0a8de302b85441deb8864c9e20c561c934e27b8.tar.gz
binaryen-f0a8de302b85441deb8864c9e20c561c934e27b8.tar.bz2
binaryen-f0a8de302b85441deb8864c9e20c561c934e27b8.zip
Add table.grow operation (#4245)
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r--src/js/binaryen.js-post.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 29729c4b1..cef5c989d 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -94,6 +94,7 @@ function initializeConstants() {
'TableGet',
'TableSet',
'TableSize',
+ 'TableGrow',
'Try',
'Throw',
'Rethrow',
@@ -675,6 +676,9 @@ function wrapModule(module, self = {}) {
},
'size'(name) {
return Module['_BinaryenTableSize'](module, strToStack(name));
+ },
+ 'grow'(name, value, delta) {
+ return Module['_BinaryenTableGrow'](module, strToStack(name), value, delta);
}
}
@@ -2835,6 +2839,14 @@ Module['getExpressionInfo'] = function(expr) {
'type': type,
'table': UTF8ToString(Module['_BinaryenTableSizeGetTable'](expr)),
};
+ case Module['TableGrowId']:
+ return {
+ 'id': id,
+ 'type': type,
+ 'table': UTF8ToString(Module['_BinaryenTableGrowGetTable'](expr)),
+ 'value': Module['_BinaryenTableGrowGetValue'](expr),
+ 'delta': Module['_BinaryenTableGrowGetDelta'](expr),
+ };
case Module['LoadId']:
return {
'id': id,
@@ -3850,6 +3862,27 @@ Module['TableSize'] = makeExpressionWrapper({
},
});
+Module['TableGrow'] = makeExpressionWrapper({
+ 'getTable'(expr) {
+ return UTF8ToString(Module['_BinaryenTableGrowGetTable'](expr));
+ },
+ 'setTable'(expr, name) {
+ preserveStack(() => { Module['_BinaryenTableGrowSetTable'](expr, strToStack(name)) });
+ },
+ 'getValue'(expr) {
+ return Module['_BinaryenTableGrowGetValue'](expr);
+ },
+ 'setValue'(expr, valueExpr) {
+ Module['_BinaryenTableGrowSetValue'](expr, valueExpr);
+ },
+ 'getDelta'(expr) {
+ return Module['_BinaryenTableGrowGetDelta'](expr);
+ },
+ 'setDelta'(expr, deltaExpr) {
+ Module['_BinaryenTableGrowSetDelta'](expr, deltaExpr);
+ }
+});
+
Module['MemorySize'] = makeExpressionWrapper({});
Module['MemoryGrow'] = makeExpressionWrapper({