File tree Expand file tree Collapse file tree 2 files changed +11
-3
lines changed Expand file tree Collapse file tree 2 files changed +11
-3
lines changed Original file line number Diff line number Diff line change @@ -214,10 +214,14 @@ jv jv_has(jv t, jv k) {
214
214
jv_free (elem );
215
215
} else if (jv_get_kind (t ) == JV_KIND_ARRAY &&
216
216
jv_get_kind (k ) == JV_KIND_NUMBER ) {
217
- jv elem = jv_array_get (t , (int )jv_number_value (k ));
218
- ret = jv_bool (jv_is_valid (elem ));
217
+ if (jvp_number_is_nan (k )) {
218
+ ret = jv_false ();
219
+ } else {
220
+ jv elem = jv_array_get (t , (int )jv_number_value (k ));
221
+ ret = jv_bool (jv_is_valid (elem ));
222
+ jv_free (elem );
223
+ }
219
224
jv_free (k );
220
- jv_free (elem );
221
225
} else {
222
226
ret = jv_invalid_with_msg (jv_string_fmt ("Cannot check whether %s has a %s key" ,
223
227
jv_kind_name (jv_get_kind (t )),
Original file line number Diff line number Diff line change @@ -1389,6 +1389,10 @@ map(has(2))
1389
1389
[[0,1], ["a","b","c"]]
1390
1390
[false, true]
1391
1391
1392
+ has(nan)
1393
+ [0,1,2]
1394
+ false
1395
+
1392
1396
keys
1393
1397
[42,3,35]
1394
1398
[0,1,2]
You can’t perform that action at this time.
0 commit comments