summaryrefslogtreecommitdiff
path: root/test/binaryen.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/binaryen.js')
-rw-r--r--test/binaryen.js/sideffects.js94
-rw-r--r--test/binaryen.js/sideffects.js.txt12
2 files changed, 106 insertions, 0 deletions
diff --git a/test/binaryen.js/sideffects.js b/test/binaryen.js/sideffects.js
new file mode 100644
index 000000000..a486099dc
--- /dev/null
+++ b/test/binaryen.js/sideffects.js
@@ -0,0 +1,94 @@
+console.log("SideEffects.None=" + binaryen.SideEffects.None);
+console.log("SideEffects.Branches=" + binaryen.SideEffects.Branches);
+console.log("SideEffects.Calls=" + binaryen.SideEffects.Calls);
+console.log("SideEffects.ReadsLocal=" + binaryen.SideEffects.ReadsLocal);
+console.log("SideEffects.WritesLocal=" + binaryen.SideEffects.WritesLocal);
+console.log("SideEffects.ReadsGlobal=" + binaryen.SideEffects.ReadsGlobal);
+console.log("SideEffects.WritesGlobal=" + binaryen.SideEffects.WritesGlobal);
+console.log("SideEffects.ReadsMemory=" + binaryen.SideEffects.ReadsMemory);
+console.log("SideEffects.WritesMemory=" + binaryen.SideEffects.WritesMemory);
+console.log("SideEffects.ImplicitTrap=" + binaryen.SideEffects.ImplicitTrap);
+console.log("SideEffects.IsAtomic=" + binaryen.SideEffects.IsAtomic);
+console.log("SideEffects.Any=" + binaryen.SideEffects.Any);
+
+var module = new binaryen.Module();
+assert(
+ binaryen.getSideEffects(
+ module.i32.const(1)
+ )
+ ==
+ binaryen.SideEffects.None
+);
+assert(
+ binaryen.getSideEffects(
+ module.br("test")
+ )
+ ==
+ binaryen.SideEffects.Branches
+);
+assert(
+ binaryen.getSideEffects(
+ module.call("test", [], binaryen.i32)
+ )
+ ==
+ binaryen.SideEffects.Calls
+);
+assert(
+ binaryen.getSideEffects(
+ module.local.get("test", binaryen.i32)
+ )
+ ==
+ binaryen.SideEffects.ReadsLocal
+);
+assert(
+ binaryen.getSideEffects(
+ module.local.set("test",
+ module.i32.const(1)
+ )
+ )
+ ==
+ binaryen.SideEffects.WritesLocal
+);
+assert(
+ binaryen.getSideEffects(
+ module.global.get("test", binaryen.i32)
+ )
+ ==
+ binaryen.SideEffects.ReadsGlobal
+);
+assert(
+ binaryen.getSideEffects(
+ module.global.set("test", module.i32.const(1))
+ )
+ ==
+ binaryen.SideEffects.WritesGlobal
+);
+assert(
+ binaryen.getSideEffects(
+ module.i32.load(0, 0,
+ module.i32.const(0)
+ )
+ )
+ ==
+ binaryen.SideEffects.ReadsMemory | binaryen.SideEffects.ImplicitTrap
+);
+assert(
+ binaryen.getSideEffects(
+ module.i32.store(0, 0,
+ module.i32.const(0),
+ module.i32.const(1)
+ )
+ )
+ ==
+ binaryen.SideEffects.WritesMemory | binaryen.SideEffects.ImplicitTrap
+);
+assert(
+ binaryen.getSideEffects(
+ module.i32.div_s(
+ module.i32.const(1),
+ module.i32.const(0)
+ )
+ )
+ ==
+ binaryen.SideEffects.ImplicitTrap
+);
diff --git a/test/binaryen.js/sideffects.js.txt b/test/binaryen.js/sideffects.js.txt
new file mode 100644
index 000000000..54a1e14bc
--- /dev/null
+++ b/test/binaryen.js/sideffects.js.txt
@@ -0,0 +1,12 @@
+SideEffects.None=0
+SideEffects.Branches=1
+SideEffects.Calls=2
+SideEffects.ReadsLocal=4
+SideEffects.WritesLocal=8
+SideEffects.ReadsGlobal=16
+SideEffects.WritesGlobal=32
+SideEffects.ReadsMemory=64
+SideEffects.WritesMemory=128
+SideEffects.ImplicitTrap=256
+SideEffects.IsAtomic=512
+SideEffects.Any=1023