summaryrefslogtreecommitdiff
path: root/test/binaryen.js
diff options
context:
space:
mode:
authorDaniel Wirtz <dcode@dcode.io>2017-11-21 21:43:12 +0100
committerAlon Zakai <alonzakai@gmail.com>2017-11-21 12:43:12 -0800
commiteedcc291164a46474116e0e54ede3133214a7621 (patch)
tree6350e315b74464f48c4f02c6c77a1338b630e144 /test/binaryen.js
parent07c54750eb626ea7434341e439f6cee75efbf4b5 (diff)
downloadbinaryen-eedcc291164a46474116e0e54ede3133214a7621.tar.gz
binaryen-eedcc291164a46474116e0e54ede3133214a7621.tar.bz2
binaryen-eedcc291164a46474116e0e54ede3133214a7621.zip
Running passes on a single function in binaryen-c/.js (#1295)
* Also other function utilities in C and JS APIs
Diffstat (limited to 'test/binaryen.js')
-rw-r--r--test/binaryen.js/functions.js28
-rw-r--r--test/binaryen.js/functions.js.txt11
2 files changed, 39 insertions, 0 deletions
diff --git a/test/binaryen.js/functions.js b/test/binaryen.js/functions.js
new file mode 100644
index 000000000..34142941c
--- /dev/null
+++ b/test/binaryen.js/functions.js
@@ -0,0 +1,28 @@
+var module = new Binaryen.Module();
+
+var signature = module.addFunctionType("i", Binaryen.i32, []);
+
+var func = module.addFunction("a-function", signature, [],
+ module.i32.add(
+ module.i32.const(1),
+ module.i32.const(2)
+ )
+);
+
+console.log("GetFunction is equal: " + (func === module.getFunction("a-function")));
+
+module.runPassesOnFunction(func, ["precompute"]);
+
+var body = Binaryen.getFunctionBody(func);
+
+console.log("ExpressionId=" + Binaryen.getExpressionId(body));
+console.log("ExpressionType=" + Binaryen.getExpressionType(body));
+console.log(Binaryen.emitText(body));
+
+module.removeFunction("a-function");
+
+module.addGlobal("a-global", Binaryen.i32, false, body);
+
+module.validate();
+
+console.log(module.emitText());
diff --git a/test/binaryen.js/functions.js.txt b/test/binaryen.js/functions.js.txt
new file mode 100644
index 000000000..a785d1ddf
--- /dev/null
+++ b/test/binaryen.js/functions.js.txt
@@ -0,0 +1,11 @@
+GetFunction is equal: true
+ExpressionId=15
+ExpressionType=1
+(i32.const 3)
+
+(module
+ (type $i (func (result i32)))
+ (global $a-global i32 (i32.const 3))
+ (memory $0 0)
+)
+