diff options
author | Max Graey <maxgraey@gmail.com> | 2021-10-18 22:48:50 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-18 12:48:50 -0700 |
commit | f0a8de302b85441deb8864c9e20c561c934e27b8 (patch) | |
tree | b71e540462b865891a0b63d25b0b16b9653fd04a /src/js/binaryen.js-post.js | |
parent | 0bec0a4bbaf4859bb4c7a2f1c4ecda60ccab72f2 (diff) | |
download | binaryen-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.js | 33 |
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({ |