diff options
author | Max Graey <maxgraey@gmail.com> | 2022-07-29 07:15:35 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-29 04:15:35 +0000 |
commit | d02c260619e5d068b6893d4948de0487d0f1f66d (patch) | |
tree | beba5a15fb0ace5bd34a4135efecc54deb754bc6 /src/js/binaryen.js-post.js | |
parent | 0cd9fb599fc5a44df7774d5f180d912ccab8c941 (diff) | |
download | binaryen-d02c260619e5d068b6893d4948de0487d0f1f66d.tar.gz binaryen-d02c260619e5d068b6893d4948de0487d0f1f66d.tar.bz2 binaryen-d02c260619e5d068b6893d4948de0487d0f1f66d.zip |
[JS Api] Reuse C-Api for emitText and emitStackIR (#4832)
Make the C API match the JS API and fix an old bug where extra newlines were emitted.
Diffstat (limited to 'src/js/binaryen.js-post.js')
-rw-r--r-- | src/js/binaryen.js-post.js | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/src/js/binaryen.js-post.js b/src/js/binaryen.js-post.js index 9e1534070..d2a8eb7f5 100644 --- a/src/js/binaryen.js-post.js +++ b/src/js/binaryen.js-post.js @@ -2616,22 +2616,16 @@ function wrapModule(module, self = {}) { return Module['_BinaryenGetElementSegmentByIndex'](module, index); }; self['emitText'] = function() { - const old = out; - let ret = ''; - out = x => { ret += x + '\n' }; - Module['_BinaryenModulePrint'](module); - out = old; - return ret; + let textPtr = Module['_BinaryenModuleAllocateAndWriteText'](module); + let text = UTF8ToString(textPtr); + if (textPtr) _free(textPtr); + return text; }; self['emitStackIR'] = function(optimize) { - self['runPasses'](['generate-stack-ir']); - if (optimize) self['runPasses'](['optimize-stack-ir']); - const old = out; - let ret = ''; - out = x => { ret += x + '\n' }; - self['runPasses'](['print-stack-ir']); - out = old; - return ret; + let textPtr = Module['_BinaryenModuleAllocateAndWriteStackIR'](module, optimize); + let text = UTF8ToString(textPtr); + if (textPtr) _free(textPtr); + return text; }; self['emitAsmjs'] = function() { const old = out; |