diff --git a/core/prettyprint/prettyprint-tests.factor b/core/prettyprint/prettyprint-tests.factor index e9fc483c38..ef21e9cf89 100644 --- a/core/prettyprint/prettyprint-tests.factor +++ b/core/prettyprint/prettyprint-tests.factor @@ -299,3 +299,7 @@ unit-test [ 2 break 2 \ + (step-into) . ] (remove-breakpoints) ] unit-test +[ [ 2 . ] ] [ + [ 2 \ break (step-into) . ] (remove-breakpoints) +] unit-test + diff --git a/core/prettyprint/prettyprint.factor b/core/prettyprint/prettyprint.factor index 4a728b81de..01cff3b7b3 100644 --- a/core/prettyprint/prettyprint.factor +++ b/core/prettyprint/prettyprint.factor @@ -99,7 +99,12 @@ SYMBOL: -> building get dup empty? [ drop \ (step-into) , ] [ - pop dup wrapper? [ wrapped ] when , + pop dup wrapper? [ + wrapped dup \ break eq? + [ drop ] [ , ] if + ] [ + , + ] if ] if ; : (remove-breakpoints) ( quot -- newquot ) diff --git a/extra/tools/interpreter/interpreter.factor b/extra/tools/interpreter/interpreter.factor index 526e105e4e..f1e36032a0 100644 --- a/extra/tools/interpreter/interpreter.factor +++ b/extra/tools/interpreter/interpreter.factor @@ -65,12 +65,14 @@ M: word (step-into) (step-into-execute) ; { >n ndrop >c c> continue continue-with - (continue-with) stop break + (continue-with) stop } [ dup [ execute break ] curry "step-into" set-word-prop ] each +\ break [ break ] "step-into" set-word-prop + ! Stepping : change-innermost-frame ( quot interpreter -- ) interpreter-continuation [