github.com/tetratelabs/wazero@v1.7.3-0.20240513003603-48f702e154b5/examples/import-go/testdata/age_calculator.wat (about) 1 (module $age-calculator 2 3 ;; In WebAssembly, you don't import an entire module, rather each function. 4 ;; This imports the functions and gives them names which are easier to read 5 ;; than the alternative (zero-based index). 6 ;; 7 ;; Note: Importing unused functions is not an error in WebAssembly. 8 (import "env" "log_i32" (func $log (param i32))) 9 (import "env" "current_year" (func $year (result i32))) 10 11 ;; get_age looks up the current year and subtracts the input from it. 12 (func $get_age (export "get_age") (param $year_born i32) (result i32) 13 call $year ;; stack: [$year.result] 14 local.get $year_born ;; stack: [$year.result, $year_born] 15 i32.sub ;; stack: [$year.result-$year_born] 16 ) 17 18 ;; log_age calls $log with the result of $get_age 19 (func (export "log_age") (param $year_born i32) 20 ;; stack: [] 21 local.get $year_born ;; stack: [$year_born] 22 call $get_age ;; stack: [$get_age.result] 23 call $log ;; stack: [] 24 ) 25 )