summaryrefslogtreecommitdiff
path: root/test/binaryen.js/tail_calls.js
diff options
context:
space:
mode:
authorShao Cheng <astrohavoc@gmail.com>2020-04-22 19:58:33 +0200
committerGitHub <noreply@github.com>2020-04-22 10:58:33 -0700
commitd8b414d22b032efc87dbceb50abef8bce5ce8266 (patch)
treebb9fea7afac25589343783c73131a53c19f842a2 /test/binaryen.js/tail_calls.js
parenta1d562a89423de2b27f808749b4771e35c34622c (diff)
downloadbinaryen-d8b414d22b032efc87dbceb50abef8bce5ce8266.tar.gz
binaryen-d8b414d22b032efc87dbceb50abef8bce5ce8266.tar.bz2
binaryen-d8b414d22b032efc87dbceb50abef8bce5ce8266.zip
Add BinaryenCallIsReturn/BinaryenCallIndirectIsReturn to C/JS API (#2779)
Diffstat (limited to 'test/binaryen.js/tail_calls.js')
-rw-r--r--test/binaryen.js/tail_calls.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/binaryen.js/tail_calls.js b/test/binaryen.js/tail_calls.js
new file mode 100644
index 000000000..7ad0bfddd
--- /dev/null
+++ b/test/binaryen.js/tail_calls.js
@@ -0,0 +1,36 @@
+var module = new binaryen.Module();
+
+module.setFeatures(binaryen.Features.TailCall);
+
+module.addTableImport("0", "env", "table");
+
+var foo = module.addFunction(
+ "foo",
+ binaryen.none,
+ binaryen.none,
+ [],
+ module.returnCall("foo", [], binaryen.none, binaryen.none)
+);
+
+var bar = module.addFunction(
+ "bar",
+ binaryen.none,
+ binaryen.none,
+ [],
+ module.returnCallIndirect(
+ module.i32.const(0),
+ [],
+ binaryen.none,
+ binaryen.none
+ )
+);
+
+assert(module.validate());
+
+console.log(
+ binaryen.getExpressionInfo(binaryen.getFunctionInfo(foo).body).isReturn
+);
+
+console.log(
+ binaryen.getExpressionInfo(binaryen.getFunctionInfo(bar).body).isReturn
+);