...
1 package emscripten_test
2
3 import (
4 "context"
5 _ "embed"
6
7 "github.com/tetratelabs/wazero"
8 "github.com/tetratelabs/wazero/imports/emscripten"
9 "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1"
10 )
11
12
13 var invokeWasm []byte
14
15
16 func Example_instantiateForModule() {
17 ctx := context.Background()
18
19 r := wazero.NewRuntime(ctx)
20 defer r.Close(ctx)
21
22
23 wasi_snapshot_preview1.MustInstantiate(ctx, r)
24
25
26 compiled, err := r.CompileModule(ctx, invokeWasm)
27 if err != nil {
28 panic(err)
29 }
30
31 envCloser, err := emscripten.InstantiateForModule(ctx, r, compiled)
32 if err != nil {
33 panic(err)
34 }
35 defer envCloser.Close(ctx)
36
37
38 }
39
40
41
42 func Example_functionExporter() {
43 ctx := context.Background()
44
45 r := wazero.NewRuntime(ctx)
46 defer r.Close(ctx)
47
48
49 wasi_snapshot_preview1.MustInstantiate(ctx, r)
50
51
52 compiled, err := r.CompileModule(ctx, invokeWasm)
53 if err != nil {
54 panic(err)
55 }
56 exporter, err := emscripten.NewFunctionExporterForModule(compiled)
57 if err != nil {
58 panic(err)
59 }
60
61
62 envBuilder := r.NewHostModuleBuilder("env").
63 NewFunctionBuilder().
64 WithFunc(func() uint32 { return 1 }).
65 Export("get_int")
66
67
68 exporter.ExportFunctions(envBuilder)
69
70 }
71
View as plain text