diff --git a/operator-filter.go b/operator-filter.go index 459041f..aa679d6 100644 --- a/operator-filter.go +++ b/operator-filter.go @@ -52,6 +52,8 @@ func evalFilter(ctx ExprContext, opTerm *term) (v any, err error) { err = fmt.Errorf("filter expression must return a boolean or a castable to boolean, got %v [%T]", rightValue, rightValue) } } + ctx.DeleteVar("_count") + ctx.DeleteVar("_index") ctx.DeleteVar("_") if err != nil { break diff --git a/operator-map.go b/operator-map.go index 7e430c2..ced7e88 100644 --- a/operator-map.go +++ b/operator-map.go @@ -46,6 +46,8 @@ func evalMap(ctx ExprContext, opTerm *term) (v any, err error) { if rightValue, err = opTerm.children[1].compute(ctx); err == nil { values.appendItem(rightValue) } + ctx.DeleteVar("_count") + ctx.DeleteVar("_index") ctx.DeleteVar("_") if err != nil { break