]> git.kaiwu.me - njs.git/commitdiff
Improved JSON.stringify() for external values.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 31 Jul 2018 12:30:01 +0000 (15:30 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 31 Jul 2018 12:30:01 +0000 (15:30 +0300)
njs/njs_json.c
njs/test/njs_unit_test.c

index 616a4e59b0adcb68d6f679386b6ac355c315ed66..9e2a571ba0526fe64eb2d8e829e159ed2c4cb66a 100644 (file)
@@ -1723,11 +1723,8 @@ njs_json_append_value(njs_json_stringify_t *stringify, const njs_value_t *value)
     case NJS_NULL:
     case NJS_INVALID:
     case NJS_FUNCTION:
-        return njs_json_buf_append(stringify, "null", 4);
-
     default:
-        njs_type_error(stringify->vm, "Non-serializable object");
-        return NXT_DECLINED;
+        return njs_json_buf_append(stringify, "null", 4);
     }
 }
 
index f437c2e4086493ccf8972dfc34724fcb4c41b32a..2e5ebe66c0fcfe0cf252b322f442217364b45ab0 100644 (file)
@@ -9035,8 +9035,8 @@ static njs_unit_test_t  njs_test[] =
     { nxt_string("var e = URIError('e'); e.foo = 'E'; JSON.stringify(e)"),
       nxt_string("{\"foo\":\"E\"}") },
 
-    { nxt_string("JSON.stringify($r)"),
-      nxt_string("TypeError: Non-serializable object") },
+    { nxt_string("JSON.stringify([$r])"),
+      nxt_string("[null]") },
 
     /* Ignoring named properties of an array. */