summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-05-27 15:46:15 +0000
committerLibravatar GitHub <noreply@github.com>2024-05-27 17:46:15 +0200
commit1e7b32490dfdccddd04f46d4b0416b48d749d51b (patch)
tree62a11365933a5a11e0800af64cbdf9172e5e6e7a /vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go
parent[chore] Small styling + link issues (#2933) (diff)
downloadgotosocial-1e7b32490dfdccddd04f46d4b0416b48d749d51b.tar.xz
[experiment] add alternative wasm sqlite3 implementation available via build-tag (#2863)
This allows for building GoToSocial with [SQLite transpiled to WASM](https://github.com/ncruces/go-sqlite3) and accessed through [Wazero](https://wazero.io/).
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go b/vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go
new file mode 100644
index 000000000..556e5de82
--- /dev/null
+++ b/vendor/github.com/tetratelabs/wazero/internal/wasmruntime/errors.go
@@ -0,0 +1,50 @@
+// Package wasmruntime contains internal symbols shared between modules for error handling.
+// Note: This is named wasmruntime to avoid conflicts with the normal go module.
+// Note: This only imports "api" as importing "wasm" would create a cyclic dependency.
+package wasmruntime
+
+var (
+ // ErrRuntimeStackOverflow indicates that there are too many function calls,
+ // and the Engine terminated the execution.
+ ErrRuntimeStackOverflow = New("stack overflow")
+ // ErrRuntimeInvalidConversionToInteger indicates the Wasm function tries to
+ // convert NaN floating point value to integers during trunc variant instructions.
+ ErrRuntimeInvalidConversionToInteger = New("invalid conversion to integer")
+ // ErrRuntimeIntegerOverflow indicates that an integer arithmetic resulted in
+ // overflow value. For example, when the program tried to truncate a float value
+ // which doesn't fit in the range of target integer.
+ ErrRuntimeIntegerOverflow = New("integer overflow")
+ // ErrRuntimeIntegerDivideByZero indicates that an integer div or rem instructions
+ // was executed with 0 as the divisor.
+ ErrRuntimeIntegerDivideByZero = New("integer divide by zero")
+ // ErrRuntimeUnreachable means "unreachable" instruction was executed by the program.
+ ErrRuntimeUnreachable = New("unreachable")
+ // ErrRuntimeOutOfBoundsMemoryAccess indicates that the program tried to access the
+ // region beyond the linear memory.
+ ErrRuntimeOutOfBoundsMemoryAccess = New("out of bounds memory access")
+ // ErrRuntimeInvalidTableAccess means either offset to the table was out of bounds of table, or
+ // the target element in the table was uninitialized during call_indirect instruction.
+ ErrRuntimeInvalidTableAccess = New("invalid table access")
+ // ErrRuntimeIndirectCallTypeMismatch indicates that the type check failed during call_indirect.
+ ErrRuntimeIndirectCallTypeMismatch = New("indirect call type mismatch")
+ // ErrRuntimeUnalignedAtomic indicates that an atomic operation was made with incorrect memory alignment.
+ ErrRuntimeUnalignedAtomic = New("unaligned atomic")
+ // ErrRuntimeExpectedSharedMemory indicates that an operation was made against unshared memory when not allowed.
+ ErrRuntimeExpectedSharedMemory = New("expected shared memory")
+ // ErrRuntimeTooManyWaiters indicates that atomic.wait was called with too many waiters.
+ ErrRuntimeTooManyWaiters = New("too many waiters")
+)
+
+// Error is returned by a wasm.Engine during the execution of Wasm functions, and they indicate that the Wasm runtime
+// state is unrecoverable.
+type Error struct {
+ s string
+}
+
+func New(text string) *Error {
+ return &Error{s: text}
+}
+
+func (e *Error) Error() string {
+ return e.s
+}