diff --git a/src/jv.c b/src/jv.c index 6a446ae3..9c6a868c 100644 --- a/src/jv.c +++ b/src/jv.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "jv_alloc.h" #include "jv.h" @@ -1302,7 +1303,7 @@ int jv_identical(jv a, jv b) { r = a.u.ptr == b.u.ptr; break; case JV_KIND_NUMBER: - r = a.u.number == b.u.number; + r = a.u.number == b.u.number || (isnan(a.u.number) && isnan(b.u.number)); break; default: r = 1; diff --git a/tests/jq.test b/tests/jq.test index 6c75192e..c7c1d371 100644 --- a/tests/jq.test +++ b/tests/jq.test @@ -851,6 +851,10 @@ try (def x: reverse; x=10) catch . [0,1,2] "Invalid path expression with result [2,1,0]" +.[] = 1 +[1,null,Infinity,-Infinity,NaN,-NaN] +[1,1,1,1,1,1] + # # Conditionals #