From 1a928bc3ff4b511e81b3f93db8aea872e88abaaf Mon Sep 17 00:00:00 2001 From: Daniel Wirtz Date: Fri, 18 Sep 2020 17:08:58 +0200 Subject: 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. --- test/binaryen.js/functions.js | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'test/binaryen.js/functions.js') 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(); -- cgit v1.2.3