]> git.kaiwu.me - njs.git/commitdiff
Treating null and undefined as empty string for external prop set.
authorDmitry Volyntsev <xeioex@nginx.com>
Tue, 26 Mar 2019 12:28:18 +0000 (15:28 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Tue, 26 Mar 2019 12:28:18 +0000 (15:28 +0300)
njs/njs_object.c

index cf7b0944026d6888ace80d4270a41db7e5f510e7..a627795605d2f27a12e7decedbaa8fba60715bad 100644 (file)
@@ -684,9 +684,14 @@ njs_external_property_set(njs_vm_t *vm, njs_value_t *value, njs_value_t *setval,
 
     pq = (njs_property_query_t *) vm->stash;
 
-    ret = njs_vm_value_to_ext_string(vm, &s, setval, 0);
-    if (nxt_slow_path(ret != NXT_OK)) {
-        return ret;
+    if (!njs_is_null_or_undefined(setval)) {
+        ret = njs_vm_value_to_ext_string(vm, &s, setval, 0);
+        if (nxt_slow_path(ret != NXT_OK)) {
+            return ret;
+        }
+
+    } else {
+        s = nxt_string_value("");
     }
 
     *retval = *setval;