From e74eab828e658de3eca089f82b84fb67ed4c3a75 Mon Sep 17 00:00:00 2001 From: William Langford Date: Thu, 21 Nov 2019 17:53:12 -0500 Subject: Fix nesting try/catch inside internal errors --- src/compile.c | 2 +- tests/jq.test | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compile.c b/src/compile.c index 7706c236..05478ab8 100644 --- a/src/compile.c +++ b/src/compile.c @@ -1038,7 +1038,7 @@ block gen_try_handler(block handler) { return gen_cond(// `if type=="object" and .__jq gen_and(gen_call("_equal", BLOCK(gen_lambda(gen_const(jv_string("object"))), - gen_lambda(gen_noop()))), + gen_lambda(gen_call("type", gen_noop())))), BLOCK(gen_subexp(gen_const(jv_string("__jq"))), gen_noop(), gen_op_simple(INDEX))), diff --git a/tests/jq.test b/tests/jq.test index adc57889..1e0ce071 100644 --- a/tests/jq.test +++ b/tests/jq.test @@ -1712,3 +1712,7 @@ false .x - 10 {"x":13911860366432393} 13911860366432382 + +. |= try . catch . +1 +1 \ No newline at end of file -- cgit v1.2.3