diff options
author | Daniel Wirtz <dcode@dcode.io> | 2020-09-18 17:08:58 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-18 17:08:58 +0200 |
commit | 1a928bc3ff4b511e81b3f93db8aea872e88abaaf (patch) | |
tree | c36dc3594abcd32e61f1e0a63d85339c266db788 /test/binaryen.js/functions.js | |
parent | 2548f04c198594a21e4144261e8cfea5de56308a (diff) | |
download | binaryen-1a928bc3ff4b511e81b3f93db8aea872e88abaaf.tar.gz binaryen-1a928bc3ff4b511e81b3f93db8aea872e88abaaf.tar.bz2 binaryen-1a928bc3ff4b511e81b3f93db8aea872e88abaaf.zip |
Update JS API function wrapper (#3128)
Updates the JS API `Function` wrapper introduced in #3115 with bindings for more C API functions. Also adds additional comments to describe the inner workings of wrappers in more detail.
Diffstat (limited to 'test/binaryen.js/functions.js')
-rw-r--r-- | test/binaryen.js/functions.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/binaryen.js/functions.js b/test/binaryen.js/functions.js index b50632dfa..84f59350b 100644 --- a/test/binaryen.js/functions.js +++ b/test/binaryen.js/functions.js @@ -32,3 +32,44 @@ module.removeFunction("a-function"); assert(module.validate()); console.log(module.emitText()); + +// Test wrapper + +func = module.addFunction("b-function", + binaryen.createType([binaryen.i32, binaryen.i32]), + binaryen.i32, + [ binaryen.i32, binaryen.f64 ], + module.local.tee(2, + module.i32.add( + module.local.get(0, binaryen.i32), + module.local.get(1, binaryen.i32) + ), + binaryen.i32 + ) +); +binaryen.Function.setLocalName(func, 0, "a"); +binaryen.Function.setLocalName(func, 1, "b"); +binaryen.Function.setLocalName(func, 2, "ret"); +binaryen.Function.setLocalName(func, 3, "unused"); + +var theFunc = binaryen.Function(func); +assert(theFunc.name === "b-function"); +assert(theFunc.params === binaryen.createType([binaryen.i32, binaryen.i32])); +assert(theFunc.results === binaryen.i32); +assert(theFunc.numVars === 2); +assert(theFunc.getVar(0) === binaryen.i32); +assert(theFunc.getVar(1) === binaryen.f64); +assert(theFunc.numLocals === 4); +assert(theFunc.getLocalName(0) === "a"); +assert(theFunc.getLocalName(1) === "b"); +assert(theFunc.getLocalName(2) === "ret"); +assert(theFunc.getLocalName(3) === "unused"); +theFunc.setLocalName(2, "res"); +assert(theFunc.getLocalName(2) === "res"); +assert((theFunc | 0) === func); + +assert(module.validate()); + +console.log(module.emitText()); + +module.dispose(); |