github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/internal/wasmruntime/errors.go (about) 1 // Package wasmruntime contains internal symbols shared between modules for error handling. 2 // Note: This is named wasmruntime to avoid conflicts with the normal go module. 3 // Note: This only imports "api" as importing "wasm" would create a cyclic dependency. 4 package wasmruntime 5 6 var ( 7 // ErrRuntimeStackOverflow indicates that there are too many function calls, 8 // and the Engine terminated the execution. 9 ErrRuntimeStackOverflow = New("stack overflow") 10 // ErrRuntimeInvalidConversionToInteger indicates the Wasm function tries to 11 // convert NaN floating point value to integers during trunc variant instructions. 12 ErrRuntimeInvalidConversionToInteger = New("invalid conversion to integer") 13 // ErrRuntimeIntegerOverflow indicates that an integer arithmetic resulted in 14 // overflow value. For example, when the program tried to truncate a float value 15 // which doesn't fit in the range of target integer. 16 ErrRuntimeIntegerOverflow = New("integer overflow") 17 // ErrRuntimeIntegerDivideByZero indicates that an integer div or rem instructions 18 // was executed with 0 as the divisor. 19 ErrRuntimeIntegerDivideByZero = New("integer divide by zero") 20 // ErrRuntimeUnreachable means "unreachable" instruction was executed by the program. 21 ErrRuntimeUnreachable = New("unreachable") 22 // ErrRuntimeOutOfBoundsMemoryAccess indicates that the program tried to access the 23 // region beyond the linear memory. 24 ErrRuntimeOutOfBoundsMemoryAccess = New("out of bounds memory access") 25 // ErrRuntimeInvalidTableAccess means either offset to the table was out of bounds of table, or 26 // the target element in the table was uninitialized during call_indirect instruction. 27 ErrRuntimeInvalidTableAccess = New("invalid table access") 28 // ErrRuntimeIndirectCallTypeMismatch indicates that the type check failed during call_indirect. 29 ErrRuntimeIndirectCallTypeMismatch = New("indirect call type mismatch") 30 // ErrRuntimeUnalignedAtomic indicates that an atomic operation was made with incorrect memory alignment. 31 ErrRuntimeUnalignedAtomic = New("unaligned atomic") 32 // ErrRuntimeExpectedSharedMemory indicates that an operation was made against unshared memory when not allowed. 33 ErrRuntimeExpectedSharedMemory = New("expected shared memory") 34 // ErrRuntimeTooManyWaiters indicates that atomic.wait was called with too many waiters. 35 ErrRuntimeTooManyWaiters = New("too many waiters") 36 ) 37 38 // Error is returned by a wasm.Engine during the execution of Wasm functions, and they indicate that the Wasm runtime 39 // state is unrecoverable. 40 type Error struct { 41 s string 42 } 43 44 func New(text string) *Error { 45 return &Error{s: text} 46 } 47 48 func (e *Error) Error() string { 49 return e.s 50 }