| (module | |
| (import "import" "import" (func $import)) | |
| (memory 256 256) | |
| (data (i32.const 10) "_________________") | |
| (export "test1" (func $test1)) | |
| ;; Use the function in an additional export. We should still get the same | |
| ;; results if we call this one, so it should point to identical contents as | |
| ;; earlier | |
| (export "keepalive" (func $test1)) | |
| (func $test1 | |
| ;; A safe store, should alter memory | |
| (i32.store8 (i32.const 12) (i32.const 115)) | |
| ;; A call to an import, which prevents evalling. | |
| (call $import) | |
| ;; Another safe store, but the import call before us will stop our evalling. | |
| ;; As a result we will only partially eval this function, applying only | |
| ;; the first store. | |
| ;; | |
| ;; After optimization, the test1 export will point to a function that does | |
| ;; not have the first store anymore. It will contain just the call to the | |
| ;; import and then this second store. | |
| (i32.store8 (i32.const 13) (i32.const 114)) | |
| ) | |
| ) |