summaryrefslogtreecommitdiff
path: root/src/js
diff options
context:
space:
mode:
authorMax Graey <maxgraey@gmail.com>2021-10-09 05:26:08 +0300
committerGitHub <noreply@github.com>2021-10-08 19:26:08 -0700
commitef686a4d932b9b86edc34a3b9b15926f943f6f7b (patch)
tree38a89d5b555d4501b7d504a66c7aec409e45e9b1 /src/js
parent53c5e3e62db25fe3522a1fa615a1f53c4cefdf06 (diff)
downloadbinaryen-ef686a4d932b9b86edc34a3b9b15926f943f6f7b.tar.gz
binaryen-ef686a4d932b9b86edc34a3b9b15926f943f6f7b.tar.bz2
binaryen-ef686a4d932b9b86edc34a3b9b15926f943f6f7b.zip
Add table.size operation (#4224)
Diffstat (limited to 'src/js')
-rw-r--r--src/js/binaryen.js-post.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js
index 8fbd2b7ec..29729c4b1 100644
--- a/src/js/binaryen.js-post.js
+++ b/src/js/binaryen.js-post.js
@@ -93,6 +93,7 @@ function initializeConstants() {
'RefEq',
'TableGet',
'TableSet',
+ 'TableSize',
'Try',
'Throw',
'Rethrow',
@@ -671,6 +672,9 @@ function wrapModule(module, self = {}) {
},
'set'(name, index, value) {
return Module['_BinaryenTableSet'](module, strToStack(name), index, value);
+ },
+ 'size'(name) {
+ return Module['_BinaryenTableSize'](module, strToStack(name));
}
}
@@ -2825,6 +2829,12 @@ Module['getExpressionInfo'] = function(expr) {
'index': Module['_BinaryenTableSetGetIndex'](expr),
'value': Module['_BinaryenTableSetGetValue'](expr)
};
+ case Module['TableSizeId']:
+ return {
+ 'id': id,
+ 'type': type,
+ 'table': UTF8ToString(Module['_BinaryenTableSizeGetTable'](expr)),
+ };
case Module['LoadId']:
return {
'id': id,
@@ -3831,6 +3841,15 @@ Module['TableSet'] = makeExpressionWrapper({
}
});
+Module['TableSize'] = makeExpressionWrapper({
+ 'getTable'(expr) {
+ return UTF8ToString(Module['_BinaryenTableSizeGetTable'](expr));
+ },
+ 'setTable'(expr, name) {
+ preserveStack(() => { Module['_BinaryenTableSizeSetTable'](expr, strToStack(name)) });
+ },
+});
+
Module['MemorySize'] = makeExpressionWrapper({});
Module['MemoryGrow'] = makeExpressionWrapper({