diff options
author | Sam Clegg <sbc@chromium.org> | 2021-02-11 16:53:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-12 00:53:51 +0000 |
commit | 8369064c09964ab77eae2af6f0d8cce58e412e11 (patch) | |
tree | 2f12e2dd1e4ca21332d5f9e89a8c29382826204e /test/lit/wasm-emscripten-finalize/em_asm_partial.wat | |
parent | e283300dbb8bf573584a811bdc973b3731b67486 (diff) | |
download | binaryen-8369064c09964ab77eae2af6f0d8cce58e412e11.tar.gz binaryen-8369064c09964ab77eae2af6f0d8cce58e412e11.tar.bz2 binaryen-8369064c09964ab77eae2af6f0d8cce58e412e11.zip |
finalize: strip segments that contain only EM_ASM/EM_JS data (#3557)
If we find a data segment whose entire contents is EM_JS or EM_ASM
strings then strip it from the binary.
See: https://github.com/emscripten-core/emscripten/pull/13443
Diffstat (limited to 'test/lit/wasm-emscripten-finalize/em_asm_partial.wat')
-rw-r--r-- | test/lit/wasm-emscripten-finalize/em_asm_partial.wat | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/lit/wasm-emscripten-finalize/em_asm_partial.wat b/test/lit/wasm-emscripten-finalize/em_asm_partial.wat new file mode 100644 index 000000000..6432f1689 --- /dev/null +++ b/test/lit/wasm-emscripten-finalize/em_asm_partial.wat @@ -0,0 +1,24 @@ +;; Test that em_asm string are extraced correctly when the __start_em_asm +;; and __stop_em_asm globals are exported. + +;; RUN: wasm-emscripten-finalize %s -S | filecheck %s + +;; Check for the case when __start_em_asm and __stop_em_asm don't define an +;; entire segment. In this case we preserve the segment but zero the data. + +;; CHECK: (data (i32.const 512) "xx\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00yy") + +;; CHECK: "asmConsts": { +;; CHECK-NEXT: "514": "{ console.log('JS hello'); }", +;; CHECK-NEXT: "543": "{ console.log('hello again'); }" +;; CHECK-NEXT: }, + +;; Check that the exports are removed +;; CHECK-NOT: export + +(module + (memory 1 1) + (global (export "__start_em_asm") i32 (i32.const 514)) + (global (export "__stop_em_asm") i32 (i32.const 575)) + (data (i32.const 512) "xx{ console.log('JS hello'); }\00{ console.log('hello again'); }\00yy") +) |