]> git.kaiwu.me - njs.git/commitdiff
Fixed JSON.stringify() for arrays with empty cells.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 20 Apr 2018 13:42:08 +0000 (16:42 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 20 Apr 2018 13:42:08 +0000 (16:42 +0300)
njs/njs_json.c
njs/test/njs_unit_test.c

index 9ad86d0c351198ce8d869e92df41ed6b63bc04ea..c7b952f910bcd33040135300a5c7cc8c4f82f25c 100644 (file)
@@ -1719,6 +1719,7 @@ njs_json_append_value(njs_json_stringify_t *stringify, njs_value_t *value)
 
     case NJS_VOID:
     case NJS_NULL:
+    case NJS_INVALID:
     case NJS_FUNCTION:
         return njs_json_buf_append(stringify, "null", 4);
 
index 693dd8563bbc55240a62b1f7265b09f5b010c6c8..7fbee6a0edb69f9f5d929fe41c87138328d946ab 100644 (file)
@@ -8673,6 +8673,9 @@ static njs_unit_test_t  njs_test[] =
     { nxt_string("JSON.stringify([])"),
       nxt_string("[]") },
 
+    { nxt_string("var a = [1]; a[2] = 'x'; JSON.stringify(a)"),
+      nxt_string("[1,null,\"x\"]") },
+
     { nxt_string("JSON.stringify({a:\"b\",c:19,e:null,t:true,f:false})"),
       nxt_string("{\"a\":\"b\",\"c\":19,\"e\":null,\"t\":true,\"f\":false}") },