summaryrefslogtreecommitdiff
path: root/src/js/binaryen.js-post.js
diff options
context:
space:
mode:
authorCOFFEETALES <46571757+COFFEETALES@users.noreply.github.com>2020-02-20 20:18:55 +0100
committerGitHub <noreply@github.com>2020-02-20 11:18:55 -0800
commit42e566c7983ef54e1fedf8ec2addfb23153509fa (patch)
tree4a59175a2b0c8140e528d156a4cd96fbbb4d66da /src/js/binaryen.js-post.js
parent0761f5d1b8cc2bf6041370706e82c80e5881d0b0 (diff)
downloadbinaryen-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.js21
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 {