mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-03 18:47:47 +00:00
9da8b5c786
This adds support for the `//go:wasmexport` pragma as proposed here: https://github.com/golang/go/issues/65199 It is currently implemented only for wasip1 and wasm-unknown, but it is certainly possible to extend it to other targets like GOOS=js and wasip2.
36 lines
607 B
Go
36 lines
607 B
Go
package main
|
|
|
|
func init() {
|
|
println("called init")
|
|
}
|
|
|
|
//go:wasmimport tester callTestMain
|
|
func callTestMain()
|
|
|
|
func main() {
|
|
// main.main is not used when using -buildmode=c-shared.
|
|
callTestMain()
|
|
}
|
|
|
|
//go:wasmexport hello
|
|
func hello() {
|
|
println("hello!")
|
|
}
|
|
|
|
//go:wasmexport add
|
|
func add(a, b int) int {
|
|
println("called add:", a, b)
|
|
return a + b
|
|
}
|
|
|
|
//go:wasmimport tester callOutside
|
|
func callOutside(a, b int) int
|
|
|
|
//go:wasmexport reentrantCall
|
|
func reentrantCall(a, b int) int {
|
|
println("reentrantCall:", a, b)
|
|
result := callOutside(a, b)
|
|
println("reentrantCall result:", result)
|
|
return result
|
|
}
|