diff options
author | Max Graey <maxgraey@gmail.com> | 2021-10-09 05:26:08 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-08 19:26:08 -0700 |
commit | ef686a4d932b9b86edc34a3b9b15926f943f6f7b (patch) | |
tree | 38a89d5b555d4501b7d504a66c7aec409e45e9b1 /src/js | |
parent | 53c5e3e62db25fe3522a1fa615a1f53c4cefdf06 (diff) | |
download | binaryen-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.js | 19 |
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({ |