summaryrefslogtreecommitdiff
path: root/test/ctor-eval/unsafe_store3.wast
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2017-04-28 14:34:25 -0700
committerGitHub <noreply@github.com>2017-04-28 14:34:25 -0700
commita88d9b83a4629f4bf4c3b210b07d11d2396c594d (patch)
tree0df6fa75b22d4eb5a1590e6ee9fe5e6352ace5e4 /test/ctor-eval/unsafe_store3.wast
parent5d4f9eb82226acc0fdb5e2dea1a04e17c340c371 (diff)
downloadbinaryen-a88d9b83a4629f4bf4c3b210b07d11d2396c594d.tar.gz
binaryen-a88d9b83a4629f4bf4c3b210b07d11d2396c594d.tar.bz2
binaryen-a88d9b83a4629f4bf4c3b210b07d11d2396c594d.zip
ctor evaller (#982)
Add wasm-ctor-eval, which evaluates functions at compile time - typically static constructor functions - and applies their effects into memory, saving work at startup. If we encounter something we can't evaluate at compile time in our interpreter, stop there. This is similar to ctor_evaller.py in emscripten (which was for asm.js).
Diffstat (limited to 'test/ctor-eval/unsafe_store3.wast')
-rw-r--r--test/ctor-eval/unsafe_store3.wast10
1 files changed, 10 insertions, 0 deletions
diff --git a/test/ctor-eval/unsafe_store3.wast b/test/ctor-eval/unsafe_store3.wast
new file mode 100644
index 000000000..701e4b32e
--- /dev/null
+++ b/test/ctor-eval/unsafe_store3.wast
@@ -0,0 +1,10 @@
+(module
+ (memory 256 256)
+ (data (i32.const 10) "waka waka waka waka waka")
+ (export "test1" $test1)
+ (export "test2" $test2)
+ (export "test3" $test3)
+ (func $test1
+ (i32.store16 (i32.const 33) (i32.const 109)) ;; after last segment due to size of type
+ )
+)