diff --git a/go/avm.go b/go/avm.go index 987ece40..4f5605bb 100644 --- a/go/avm.go +++ b/go/avm.go @@ -204,13 +204,8 @@ func Step(s State, prog []Instr) (*State, error) { var b Val if arity >= 2 { b = stack[len(stack)-1]; stack = stack[:len(stack)-1] } a := stack[len(stack)-1]; stack = stack[:len(stack)-1] - r, err := func() (Val, error) { - defer func() { - if r := recover(); r != nil { err = errors.New("runtime error in execPrim") } - }() - return execPrim(p, a, b) - }() - if err != nil { return nil, err } + r, execErr := execPrim(p, a, b) + if execErr != nil { return nil, execErr } stack = append(stack, r) case Halt: s.Halted = true