From 721e8ffb975a6e68a56287cd46ecc19e107211c6 Mon Sep 17 00:00:00 2001 From: Jackson Gardner Date: Tue, 24 May 2022 09:59:47 -0700 Subject: Add C and JS API functions for accessing memory info (#4682) Based on #3573 plus minor fixes --- src/js/binaryen.js-post.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'src/js/binaryen.js-post.js') diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 28f5b6258..b6ea7dee1 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -2500,9 +2500,24 @@ function wrapModule(module, self = {}) { ); }); }; + self['hasMemory'] = function() { + return Boolean(Module['_BinaryenHasMemory'](module)); + }; + self['getMemoryInfo'] = function() { + var memoryInfo = { + 'module': UTF8ToString(Module['_BinaryenMemoryImportGetModule'](module)), + 'base': UTF8ToString(Module['_BinaryenMemoryImportGetBase'](module)), + 'initial': Module['_BinaryenMemoryGetInitial'](module), + 'shared': Boolean(Module['_BinaryenMemoryIsShared'](module)) + }; + if (Module['_BinaryenMemoryHasMax'](module)) { + memoryInfo['max'] = Module['_BinaryenMemoryGetMax'](module); + } + return memoryInfo; + }; self['getNumMemorySegments'] = function() { return Module['_BinaryenGetNumMemorySegments'](module); - } + }; self['getMemorySegmentInfoByIndex'] = function(id) { return { 'offset': Module['_BinaryenGetMemorySegmentByteOffset'](module, id), @@ -2517,7 +2532,7 @@ function wrapModule(module, self = {}) { })(), 'passive': Boolean(Module['_BinaryenGetMemorySegmentPassive'](module, id)) }; - } + }; self['setStart'] = function(start) { return Module['_BinaryenSetStart'](module, start); }; -- cgit v1.2.3