diff --git a/runtime/stdlib/webassembly.go b/runtime/stdlib/webassembly.go index fed7ea902c..7d5c391577 100644 --- a/runtime/stdlib/webassembly.go +++ b/runtime/stdlib/webassembly.go @@ -44,6 +44,8 @@ func newWebAssemblyCompileAndInstantiateFunction( panic(err) } + // TODO meter + module, err := handler.CompileWebAssembly(bytes) if err != nil { panic(err) diff --git a/runtime/webassembly.go b/runtime/webassembly.go index d3601fb006..ebb324bbf0 100644 --- a/runtime/webassembly.go +++ b/runtime/webassembly.go @@ -55,8 +55,25 @@ func NewWasmtimeWebAssemblyModule(bytes []byte) (stdlib.WebAssemblyModule, error config.SetCraneliftFlag("enable_nan_canonicalization", "true") engine := wasmtime.NewEngineWithConfig(config) + store := wasmtime.NewStore(engine) + // TODO: define memory limit + const todoMemoryLimit = 2 * 1024 * 1024 + // TODO: define table elements limit + const tableElementsLimit = 10_000 + // TODO: define tables limit + const todoTablesLimit = 1 + // TODO: define memories limit + const todoMemoriesLimit = 1 + store.Limiter( + todoMemoryLimit, + tableElementsLimit, + -1, + todoTablesLimit, + todoMemoriesLimit, + ) + module, err := wasmtime.NewModule(engine, bytes) if err != nil { // TODO: wrap error