diff options
author | COFFEETALES <46571757+COFFEETALES@users.noreply.github.com> | 2020-02-20 20:18:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-20 11:18:55 -0800 |
commit | 42e566c7983ef54e1fedf8ec2addfb23153509fa (patch) | |
tree | 4a59175a2b0c8140e528d156a4cd96fbbb4d66da /src/js/binaryen.js-post.js | |
parent | 0761f5d1b8cc2bf6041370706e82c80e5881d0b0 (diff) | |
download | binaryen-42e566c7983ef54e1fedf8ec2addfb23153509fa.tar.gz binaryen-42e566c7983ef54e1fedf8ec2addfb23153509fa.tar.bz2 binaryen-42e566c7983ef54e1fedf8ec2addfb23153509fa.zip |
Add the GetFunctionTable JS API (#2554)
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r-- | src/js/binaryen.js-post.js | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 3ef19fd7d..33f94939e 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -2177,6 +2177,23 @@ function wrapModule(module, self) { ); }); }; + self['getFunctionTable'] = function() { + return { + 'imported': Boolean(Module['_BinaryenIsFunctionTableImported'](module)), + 'segments': (function() { + var arr = []; + for (var i = 0, numSegments = Module['_BinaryenGetNumFunctionTableSegments'](module); i !== numSegments; ++i) { + var seg = {'offset': Module['_BinaryenGetFunctionTableSegmentOffset'](module, i), 'names': []}; + for (var j = 0, segmentLength = Module['_BinaryenGetFunctionTableSegmentLength'](module, i); j !== segmentLength; ++j) { + var ptr = Module['_BinaryenGetFunctionTableSegmentData'](module, i, j); + seg['names'].push(UTF8ToString(ptr)); + } + arr.push(seg); + } + return arr; + })() + }; + }; self['setMemory'] = function(initial, maximum, exportName, segments, shared) { // segments are assumed to be { passive: bool, offset: expression ref, data: array of 8-bit data } if (!segments) segments = []; @@ -2511,7 +2528,7 @@ Module['getExpressionInfo'] = function(expr) { var tempBuffer = stackAlloc(16); Module['_BinaryenConstGetValueV128'](expr, tempBuffer); value = new Array(16); - for (var i = 0 ; i < 16; i++) { + for (var i = 0; i < 16; i++) { value[i] = HEAPU8[tempBuffer + i]; } }); @@ -2639,7 +2656,7 @@ Module['getExpressionInfo'] = function(expr) { var tempBuffer = stackAlloc(16); Module['_BinaryenSIMDShuffleGetMask'](expr, tempBuffer); var mask = new Array(16); - for (var i = 0 ; i < 16; i++) { + for (var i = 0; i < 16; i++) { mask[i] = HEAPU8[tempBuffer + i]; } return { |