diff --git a/kernel/panic.go b/kernel/panic.go index b05e198..562e3eb 100644 --- a/kernel/panic.go +++ b/kernel/panic.go @@ -23,8 +23,8 @@ func Panic(e interface{}) { case *Error: err = t case string: - errRuntimePanic.Message = t - err = errRuntimePanic + panicString(t) + return case error: errRuntimePanic.Message = t.Error() err = errRuntimePanic @@ -39,3 +39,10 @@ func Panic(e interface{}) { cpuHaltFn() } + +// panicString serves as a redirect target for runtime.throw +//go:redirect-from runtime.throw +func panicString(msg string) { + errRuntimePanic.Message = msg + Panic(errRuntimePanic) +}