From 5e5e9f1c0b2b69ed86a6a57896eec1087d140333 Mon Sep 17 00:00:00 2001 From: Achilleas Anagnostopoulos Date: Mon, 26 Jun 2017 08:09:21 +0100 Subject: [PATCH] Redirect runtime.throw to kernel.Panic via kernel.panicString --- kernel/panic.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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) +}